我有一个服务合同,它定义了一个带有 System.Object 类型参数的方法(WSDL 中的 xs:anyType)。我希望能够在此参数中传递简单类型和复杂类型。简单类型可以正常工作,但是当我尝试传递在我的 WSDL 中定义的复杂类型时,我收到此错误:
元素“ http://tempuri.org/:value ”包含“ http://schemas.datacontract.org/2004/07/MyNamespace:MyClass ”数据合同的数据。反序列化器不知道映射到该合约的任何类型。将与“MyClass”对应的类型添加到已知类型列表中 - 例如,通过使用 KnownTypeAttribute 属性或将其添加到传递给 DataContractSerializer 的已知类型列表中。
将它添加为已知类型并没有帮助,因为它已经在我的 WSDL 中。如何通过“xs:anyType”参数传递复杂类型的对象?
更多信息:
我相信这在使用 NetDataContract 时有效,但我不能使用它,因为我的客户是 Silverlight。
我已经看到对显式扩展 xs:anyType 的复杂类型的引用,但我不知道如何让 WCF 生成一个可以做到这一点的 WSDL,我也不知道它是否会有所帮助。
谢谢