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