我创建了一个带有应用服务的UWP应用,并且这些应用之间的通信是使用AppServiceConnection中的值集完成的。但是,我无法找出传输的值集中支持的数据类型。
这是一些测试代码
class MyClass { public int Prop1 { get; set; } }
var data = new ValueSet();
var stringlist = new List<string>() {"a string"};
// This does not work
// data.Add("data", new MyClass() { Prop1 = 1});
// This does not work
// data.Add("data", stringlist);
// This works fine!!
data.Add("data", stringlist.ToArray());
当使用不支持的数据类型时,我得到以下错误,因此很明显它不受支持。但是我无法找到任何相关的文档,我无法确切地知道应该支持什么。
Unhandled Exception: System.Exception: Data of this type is not supported.
(Exception from HRESULT: 0x8007065E)
第二个问题;是否可以创建一个类,以便我可以在值集中使用它?
答案 0 :(得分:0)
您可以包含所有可以序列化的类型。因此,任何具有接收0
参数的默认构造函数及其中的字段的数据类型也是serializable
,或者不可序列化的数据类型DataAnotated
为[JsonIgnore]
是可以接受的
话虽这么说,将序列化数据发送到值是一个安全的赌注。
为此,您可以使用NewtonSoft
nugget从{nugget包存储中获取Json serialization
,当您拥有需要发送的数据时(如果它不是字符串),您可以序列化对象和然后发送它,当你收到它时,你会得到一个序列化的对象,你可以反序列化以获取数据。