次のシナリオを達成するのに問題があります。
現在、「コンテキスト」キーと値のペアのリストを期待するメソッドがあります。ただし、値は任意の型にすることができます。
目標は、WCF を使用してこのメソッドを利用できるようにすることです。だから私は
public List<Element> Transform(List<Element> elements)
{
... Transformation of elements takes place
}
[DataContract(Namespace = Constants.NAMESPACE)]
public struct Element
{
[DataMember(Order = 0, IsRequired = true)]
public string Key;
[DataMember(Order = 1, IsRequired = true)]
public object Value;
}
.Net テスト プロジェクトを使用すると、すべて正常に動作します。
ただし、SOAP UI を使用してこのサービスを呼び出すと、次のエラー メッセージが表示されます。
メッセージを逆シリアル化しようとしているときに、フォーマッタが例外をスローしました: パラメータ要素を逆シリアル化しようとしているときにエラーが発生しました。InnerException メッセージは、「Element Value cannot have child content to be deserialized as an object.」でした。このパターンの XML を逆シリアル化するには、XmlNode[] を使用してください。
どうしたらいいのか分からず困っています。助けていただければ幸いです。
私が使用するxmlはこれです:
<ws:Transform>
<ws:elements>
<ws:Element>
<ws:Key>Key1</ws:Key>
<ws:Value>A</ws:Value>
</ws:Element>
<ws:Element>
<ws:Key>Key2</ws:Key>
<ws:Value>B</ws:Value>
</ws:Element>
<ws:ScriptName>SetVariable</ws:ScriptName>
</ws:elements>
</ws:Transform>