当DataContracts具有继承层次结构时,将JSON消息发送到WCF服务

时间:2011-06-04 06:02:23

标签: wcf json

我有一个为JSON配置的wcf Web服务。但我的数据合同有继承链。我有一个名为 RequestMessage 的数据提取和另外两个数据交换,如 Derived1 Derived2 ,这些数据来自RequestMessage。我的服务合同有一个服务操作,就像这个 BaseResponse GetResult(BaseRequest request)。我正在用KnownTypes装饰服务合同。当与basicHttpBinding(任何基于SOAP的绑定)一起使用时,这可以正常工作。这会在传递JSON消息时有效吗?

当我发送任何Derived1或Deerived2 JSON对象时,服务是否能够识别正确类型的对象?

1 个答案:

答案 0 :(得分:3)

您显然正在使用多态类型。 Microsoft的JSON用于WCF,它使用非标准扩展,在名为__type的字段中添加类型信息。如果你添加这个字段,它可能会起作用。

可以在MSDN page的“高级信息”部分的{{3}}找到有关__type键所需值的详细信息。