在Windows应用商店应用中,根据文档,我只能在ApplicationSettings中存储WinRT类型。对于应该保持在一起的漫游设置,我可以使用ApplicationDataCompositeValue。尝试存储自己的类或结构的实例会导致异常,并显示消息“WinRT信息:尝试序列化要写入应用程序数据存储的值时出错。附加信息:不支持此类型的数据”。术语“尝试序列化”表示必须有某种方式来序列化应用程序数据API的类型。
有谁知道如何实现这一目标?
我尝试过DataContract序列化,但它没有用。
答案 0 :(得分:8)
我认为不支持自定义/自己的类型。
请参阅http://msdn.microsoft.com/en-us/library/windows/apps/hh464917.aspx: “应用程序设置支持Windows运行时数据类型。”
但您可以将对象序列化为XML并另存为字符串...(请参阅下面的代码)
public static string Serialize(object obj)
{
using (var sw = new StringWriter())
{
var serializer = new XmlSerializer(obj.GetType());
serializer.Serialize(sw, obj);
return sw.ToString();
}
}
public static T Deserialize<T>(string xml)
{
using (var sw = new StringReader(xml))
{
var serializer = new XmlSerializer(typeof(T));
return (T)serializer.Deserialize(sw);
}
}
https://github.com/MyToolkit/MyToolkit/blob/master/src/MyToolkit/Serialization/XmlSerialization.cs
也可以查看这个课程:
https://github.com/MyToolkit/MyToolkit/wiki/XmlSerialization
免责声明:以上链接来自我的项目