独立存储-如何读取附加数据

本文关键字:读取 数据 存储 何读取 独立 | 更新日期: 2023-09-27 17:55:01

我有一个Game application(WP8),我们在其中保存多个攻击的分数并将其显示给用户。

我有一个字段为noOfStonesPicked和noOfFruitsPicked的对象。

这是我的代码:

MyTopic topicObj = new MyTopic ();
for (int i = 0; i <= 2; i++)
            {
                Test mt = new Test();
                mt.noOfStonesPicked = 12;
                mt.noOfFruitsPicked= 20;
                topicObj.Stats.Add(mt);
                }                
WritetestTopicState(topicObj);

现在3次尝试,每次都有noOfStonesPicked -12 and noOfFruitsPicked - 20

现在我保存这样:

public static void WritetestTopicState(MyTopic topic)
        {
            try
            {
                using (var store = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    using (StreamWriter sw = new StreamWriter(store.OpenFile("12.xml", FileMode.Append, FileAccess.Write)))
                    {
                        XmlSerializer serializer = new XmlSerializer(typeof(MyTopic));
                        serializer.Serialize(sw, topic);
                        serializer = null;
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
        }

现在我如何检索这些值并显示?

编辑

这就是我尝试过的:

public static MyTopic ReadMockTestTopicState()
        {
            MyTopic topic = null;
            try
            {
                using (IsolatedStorageFile isoStore = IsolatedStorageFile.GetUserStoreForApplication())
                {
                    // Read application settings. 
                    if (isoStore.FileExists("11.xml"))
                    {
                        using (var store = IsolatedStorageFile.GetUserStoreForApplication())
                        {
                            using (StreamReader SR = new StreamReader(store.OpenFile("12.xml", FileMode.Open, FileAccess.Read)))
                            {
                                XmlSerializer serializer = new XmlSerializer(typeof(MyTopic));
                                topic = (MyTopic)serializer.Deserialize(SR);
                                serializer = null;
                            }
                        }
                    }
                    else
                    {
                        // If setting does not exists return default setting.
                        topic = new MyTopic();
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            return topic;
        }

独立存储-如何读取附加数据

XmlSerializer serializer = new XmlSerializer(typeof(MyTopic));
StreamReader reader = new StreamReader(path);
_myTopic = (MyTopic)serializer.Deserialize(reader);
reader.Close();

这对于反序列化来说应该足够了,如果您的MyTopic对象是可正确序列化的,我的意思是如果MyTopic对象的属性被正确地用于xml序列化。