在漫游设置中存储复杂数据类型

5

我想要的:我正在尝试将复杂数据类型存储在漫游设置中。这是我的对象长这样:

public abstract class Query
{
    [DataMember]
    public Cube Cube { get; private set; }

    [DataMember]
    public List<Filter> Filters { get; private set; }
    [DataMember]

    public Slicer Slicer { get; set; }
}

问题是什么:

Query q = ...;
RoamingSettings.Values["query"] = q;

出现了错误:

数据类型不支持

我尝试过的方法:将Query类的不同成员存储在复合设置的不同字段中。但是,Query类的数据成员又是不同类的对象,因此无法存储在composite.Values [“setting”]中。

请参考:windows 8 app roaming storage with custom class,该问题使用了复合设置进行回答,但对我的情况不适用。

我该怎么办?

1个回答

0

Ankush,

看起来你正在试图将一组自定义对象塞入RoamingSettings中,这并不是它的本意。本地/漫游设置通常存储在注册表中,用于简单的名称-值对。

那么,你可以将整个对象模型展开并存储为文件,如何?这样,你就可以轻松地序列化/反序列化数据,并在需要时在应用程序中填充/脱水你的对象模型。此外,展开的内容可以保存在Roaming文件夹中,以便在多个用户设备之间进行同步。只需根据需要注释自定义对象属性,并使用DataContractSerializer将数据展开/还原,并在Roaming文件夹中持久化XML文件。只是不要依赖即时云同步;Windows会机会主义地同步Roaming文件夹中的文件。

这个MSDN快速入门应该会有所帮助:

http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700362.aspx

谢谢!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接