C# 在独立存储中保存多个值
我正在开发一个WindowsPhone8应用程序。在我的应用程序中,我必须存储每次尝试的分数 例如: 第一次尝试:橙色10,苹果20,芒果30 第二次尝试:橙色5,苹果20,芒果25 第三次尝试:橙色15,苹果25,芒果5 等等 我有一张计分表,需要显示每次尝试的价值 这就是我试图保存值的方式: 写入值C# 在独立存储中保存多个值,c#,wpf,silverlight,windows-phone,isolatedstorage,C#,Wpf,Silverlight,Windows Phone,Isolatedstorage,我正在开发一个WindowsPhone8应用程序。在我的应用程序中,我必须存储每次尝试的分数 例如: 第一次尝试:橙色10,苹果20,芒果30 第二次尝试:橙色5,苹果20,芒果25 第三次尝试:橙色15,苹果25,芒果5 等等 我有一张计分表,需要显示每次尝试的价值 这就是我试图保存值的方式: 写入值 try { using (var store = IsolatedStorageFile.GetUserStoreForApplicati
try
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (StreamWriter sw = new StreamWriter(store.OpenFile(myObject.Title + "_State.xml", FileMode.Create, FileAccess.Write)))
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
serializer.Serialize(sw, myObject);
serializer = null;
}
}
}
catch (Exception)
{
throw;
}
阅读
MyObject myObject = null;
try
{
using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
{
// Read application settings.
if (isoStore.FileExists((myObject.Title + "_State.xml"))
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
using (StreamReader SR = new StreamReader(store.OpenFile((myObject.Title + "_State.xml", FileMode.Open, FileAccess.Read)))
{
XmlSerializer serializer = new XmlSerializer(typeof(MyObject));
myObject = (MyObject)serializer.Deserialize(SR);
serializer = null;
}
}
}
else
{
// If setting does not exists return default setting.
myObject = new MyObject();
}
}
}
catch (Exception)
{
throw;
}
return myObject;
但是在上面的代码中,每次值都被替换而不是添加到以前的值中
如何将尝试及其值添加到同一文件?在将文件写入文件模式时尝试更改。追加而不是文件模式。创建:
store.OpenFile(myObject.Title + "_State.xml", FileMode.Append, FileAccess.Write)
关于FileMode.从上面的MSDN链接追加:
打开文件(如果存在)并查找文件的结尾,或创建新文件。这需要FileIOPermissionAccess.Append权限。FileMode.Append只能与FileAccess.Write结合使用。尝试查找文件结尾之前的位置会引发IOException异常,任何读取尝试都会失败并引发NotSupportedException异常。“
我已经使用过它,并且它能够写,但是我第一次能够阅读它,之后它在我的Bean类中向我显示了错误系统异常