在UWP中与App Service通信时可以使用哪些数据类型

时间:2017-10-11 06:40:54

标签: c# uwp

我创建了一个带有应用服务的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)

第二个问题;是否可以创建一个类,以便我可以在值集中使用它?

1 个答案:

答案 0 :(得分:0)

您可以包含所有可以序列化的类型。因此,任何具有接收0参数的默认构造函数及其中的字段的数据类型也是serializable,或者不可序列化的数据类型DataAnotated[JsonIgnore]是可以接受的

话虽这么说,将序列化数据发送到值是一个安全的赌注。

为此,您可以使用NewtonSoft nugget从{nugget包存储中获取Json serialization,当您拥有需要发送的数据时(如果它不是字符串),您可以序列化对象和然后发送它,当你收到它时,你会得到一个序列化的对象,你可以反序列化以获取数据。