是否有保存自己的类的实例在Windows商店应用的applicationSettings的方法吗?(

2019-09-22 20:24发布

在Windows商店应用,我只能存放在WinRT的的applicationSettings类型,根据文档。 对于应保持在一起,我可以用ApplicationDataCompositeValue漫游设置。 尝试存储的自己的类或结构的结果的一个实例与该消息中的异常“的WinRT信息:错误试图序列被写入应用程序数据存储器中的值的其他信息:不支持这种类型的数据”。 术语“试图序列”表明必须有一些方式,以便序列化应用数据API类型。

有谁知道我怎么能做到这一点?

我试图DataContract序列,但没有奏效。

Answer 1:

我想自定义/自己的类型不被支持。

见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

免责声明:以上链接来自我的项目



文章来源: Is there a way to store instances of own classes in the ApplicationSettings of a Windows Store app?