我有一个为JSON配置的wcf Web服务。但我的数据合同有继承链。我有一个名为 RequestMessage 的数据提取和另外两个数据交换,如 Derived1 和 Derived2 ,这些数据来自RequestMessage。我的服务合同有一个服务操作,就像这个 BaseResponse GetResult(BaseRequest request)。我正在用KnownTypes装饰服务合同。当与basicHttpBinding(任何基于SOAP的绑定)一起使用时,这可以正常工作。这会在传递JSON消息时有效吗?
当我发送任何Derived1或Deerived2 JSON对象时,服务是否能够识别正确类型的对象?
答案 0 :(得分:3)
您显然正在使用多态类型。 Microsoft的JSON用于WCF,它使用非标准扩展,在名为__type
的字段中添加类型信息。如果你添加这个字段,它可能会起作用。
可以在MSDN page的“高级信息”部分的{{3}}找到有关__type
键所需值的详细信息。