为了账号安全,请及时绑定邮箱和手机立即绑定

WCF:服务器没有提供有意义的回复;

WCF:服务器没有提供有意义的回复;

C#
扬帆大鱼 2023-09-16 17:10:29
我有一个相当简单的 WCF 服务,它来回发送传感器状态。其中一个类型包含 type 的属性Typepublic class SensorValue{    public string Name { get; set; }    public string Value { get; set; }    public Type ValueType { get; set; }}当我通过 WCF 检索传感器值列表时,我收到主题中提到的错误。是否有明显的原因导致我不允许Type通过 WCF 进行(反)序列化?
查看完整描述

1 回答

?
BIG阳

TA贡献1859条经验 获得超6个赞

System.Type抽象的。假设您使用例如 a 设置该属性,typeof(System.Int32)您将得到一个具体的实现,很可能是一个System.RuntimeType。(不)幸运的是,该类型不是公开的,因此 Datacontract 序列化程序根本无法获取它。它失败并显示:

SerializationException:不需要输入数据协定名称为“RuntimeType: http: //schemas.datacontract.org/2004/07/System ”的“System.RuntimeType”。如果您使用 DataContractSerializer,请考虑使用 DataContractResolver,或者将任何静态未知的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将它们添加到传递给序列化器的已知类型列表中。

尝试任何指导来解决您的问题是没有用的。将 ValueType 属性的类型替换为正常的类型(例如字符串)并提供足够的信息以便客户端可以根据您在 ValueType 中提供的内容重新创建类型要容易得多。

查看完整回答
反对 回复 2023-09-16
  • 1 回答
  • 0 关注
  • 81 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信