将自定义类型发送到wcf服务

时间:2012-04-13 22:49:42

标签: c# wcf

我需要将一个未知类型从我的客户端传递给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服务的解决方法。

1 个答案:

答案 0 :(得分:2)

如果另一端对它没有任何了解(评论),那么你就不可能反序列化。即使使用基于类型的序列化程序(BinaryFormatter / NetDataContractSerializer)也无法做到这一点。

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

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