1

我需要将未知类型从我的客户端传递给 wcf 服务,

服务不知道该类型。

例如,我有一个类 Customer,我创建了一个序列化实例并将其发送到服务,当我需要反序列化时,问题就出现了,我必须提供类型才能将反序列化的对象转换为。

类型无法序列化,尝试时出现以下错误:

{"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 服务的解决方法。

4

1 回答 1

2

如果另一端对此一无所知(评论),那么您可能无法反序列化。即使使用基于类型的序列化程序(BinaryFormatter/NetDataContractSerializer),您也无法做到这一点。

如果您要发送完全外国的数据,那么您基本上仅限于 XML 或 JSON 之类的东西,即使这样,含义也有些模糊(是<id>123<id>字符串?int?float?long?)。

WCF 不太适合您的方案(大多数其他基于合同的堆栈也不适合;大多数系统都希望能够理解传入的数据)。

于 2012-04-13T23:14:03.887 回答