0

在 Windows 8.1 应用程序页面的代码隐藏中,我创建了一个SerializableDictionary:

private static SerializableDictionary<string, Persona> elenco =
                                  new SerializableDictionary<string, Persona>();

哪里,这个SerializableDictionary我怎样才能保存elenco使用Windows.Storage.ApplicationData对象和他的RoamingSettings财产?(如果有帮助,甚至更改声明private static)。

4

1 回答 1

0

好吧,既然它是可序列化的,我想一种方法是将它序列化为一个字符串并将该字符串存储在 RoamingSettings 中。像这样的东西:

var stringBuilder = new StringBuilder();
var xmlWriter = XmlWriter.Create(stringBuilder);
elenco.WriteXml(xmlWriter);
var applicationData = Windows.Storage.ApplicationData.Current;
applicationData.RoamingSettings.Values["elenco"] = stringBuilder.ToString();

不过,我实际上并没有使用过 RoamingSettings,所以我可能会走得很远。以下是您读取数据的方式:

var applicationData = Windows.Storage.ApplicationData.Current;
var elencoXml = (string)applicationData.RoamingSettings.Values["elenco"];
var xmlReader = XmlReader.Create(new StringReader(elencoXml));
elenco.ReadXml(xmlReader);
于 2013-11-23T12:35:02.777 回答