与 UWP 中的应用服务通信时可以使用哪些数据类型

问题描述 投票:0回答:1

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

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

c# uwp uwp-app-service
1个回答
1
投票

你可以包含所有可以序列化的类型。因此,任何具有接受

0
参数的默认构造函数的数据类型,其中的字段也是
serializable
或者不可序列化的是
DataAnotated
因为
[JsonIgnore]
是可以接受的。

话虽如此,将序列化数据发送到值是一个安全的选择。

为此,您可以使用

NewtonSoft
nugget for
Json serialization
from the nugget package store 并且当您有需要发送的数据(如果它不是字符串)时,您序列化对象然后发送它,当您接收它,您将获得一个序列化对象,您可以反序列化该对象以获取数据。

© www.soinside.com 2019 - 2024. All rights reserved.