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を明示的に拡張する複合型への参照を見たことがありますが、それを行うWSDLをWCFで生成する方法がわかりません。また、それが役立つかどうかもわかりません。
ありがとう