有没有办法在Windows应用商店应用的ApplicationSettings中存储自己的类的实例?

Jür*_*yer 3 configuration windows-8 windows-runtime windows-store-apps

根据文档,在Windows应用商店应用中,我只能在应用设置中存储WinRT类型.对于应该保持在一起的漫游设置,我可以使用ApplicationDataCompositeValue.尝试存储自己的类或结构的实例会导致异常,并显示消息"WinRT信息:尝试序列化要写入应用程序数据存储的值时出错.附加信息:不支持此类型的数据".术语"尝试序列化"表示必须有某种方式来序列化应用程序数据API的类型.

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

我尝试过DataContract序列化,但它没有用.

Ric*_*ter 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);
    }
}
Run Code Online (Sandbox Code Playgroud)

https://github.com/MyToolkit/MyToolkit/blob/master/src/MyToolkit/Serialization/XmlSerialization.cs

看看这个课程:

https://github.com/MyToolkit/MyToolkit/wiki/XmlSerialization

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