将自定义类型发送到 WCF 服务
本文关键字:WCF 服务 自定义 类型 | 更新日期: 2023-09-27 18:30:59
>我需要将未知类型从我的客户端传递到 WCF 服务,
服务不知道该类型。
例如,我有一个类 Customer 我创建了一个序列化实例并发送到服务,当我需要反序列化时出现问题,我必须提供类型才能将 desrialized 对象转换为。
类型无法序列化,尝试时出现以下错误:
{"Type 'System.RuntimeType' with data contract name
'RuntimeType:http://schemas.datacontract.org/2004/07/System' is not expected. Consider
using a DataContractResolver or add any types not known statically to the list of
known types - for example, by using the KnownTypeAttribute attribute or by adding
them to the list of known types passed to DataContractSerializer."}
我需要找到解决这个问题的方法,有什么想法吗?
总结一下:
我正在寻找将未知类型发送到 WCF 服务的解决方法。
如果另一端对此一无所知(注释),那么您不可能反序列化。即使使用基于类型的序列化程序(BinaryFormatter/NetDataContractSerializer),也无法做到这一点。
如果你发送的是完全外来的数据,那么你基本上仅限于XML或JSON之类的东西,即使这样,意思也有些模糊(<id>123<id>
是一个字符串吗?int?float?long?)。
WCF 不太适合您的方案(也不适合大多数其他基于协定的堆栈;大多数系统都希望能够理解传入的数据)。