我想要什么 :我正在尝试在漫游设置中存储复杂的数据类型。这是我的对象的样子:
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 。这个问题是通过使用复合设置回答的,但不适用于我的。
我该如何进行?
最佳答案
安库什,
看起来您正在尝试将一组自定义对象推送到 RoamingSettings 中,这并不是它的目的。本地/漫游设置通常存储在注册表中,用于简单的名称-值对。
怎么样 - 你把你的整个对象模型弄平并作为文件存储?这样,您可以轻松地序列化/反序列化您的数据,并在需要时在您的应用程序中对您的对象模型进行水合/脱水。此外,扁平化的内容可以保存在漫游文件夹中,以便在多个用户设备之间进行同步。只需根据需要注释您的自定义对象属性,并使用 DataContractSerializer 来展平/取消展平您的数据并将 XML 文件保存在漫游文件夹中。只是不要依赖即时云同步; Windows 将随机同步漫游文件夹中的文件。
这个 MSDN 快速入门应该有帮助:
http://msdn.microsoft.com/en-us/library/windows/apps/xaml/hh700362.aspx
谢谢!