Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在独立存储中保存多个值_C#_Wpf_Silverlight_Windows Phone_Isolatedstorage - Fatal编程技术网

C# 在独立存储中保存多个值

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

我正在开发一个WindowsPhone8应用程序。在我的应用程序中,我必须存储每次尝试的分数

例如:

第一次尝试:橙色10,苹果20,芒果30

第二次尝试:橙色5,苹果20,芒果25

第三次尝试:橙色15,苹果25,芒果5

等等

我有一张计分表,需要显示每次尝试的价值

这就是我试图保存值的方式:

写入值

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类中向我显示了错误系统异常