私のWebサービスは錆びているので、明らかな何かが欠けているだけだといいのですが。
部分的に、受信した呼び出しをサードパーティの SOAP サービスに中継する WCF サービスがあります。サービスは、送信する必要がある SOAP メッセージの本文と一致するオブジェクトを受け取ります。
SOAP サービスの WSDL に基づくサービス参照をプロジェクトに追加し、サービス プロキシ クラスのインスタンスを作成しました。呼び出したいサービス メソッドには 30 以上のパラメーターがあります。
で呼び出すこともできますMyService.TheMethod(obj.value1, obj.value2, obj.value3...)
が、元のオブジェクトをそのまま渡すか、XML シリアル化して XML を本体として渡すとよいでしょう。
より簡単なアプローチを可能にするものはありますか、それとも obj のプロパティを個別に SOAP メソッドに渡す必要がありますか?
アップデート
根本的な問題を明確にする。
私の.NETサービスは何か「グループ」を受け入れます
public class Person { string Name; int Age;}
public class Group { string Name; Person[] Individuals; }
次に、サード パーティの Web サービス (TPWS) を呼び出す必要があります。WSDL から生成されたプロキシ クラスは、次のようになります。
public class WSPerson { string Name; uint Age;}
public class WSGroup { string Name; WSPerson[] Individuals; }
私は以前にプロトタイプを作成し、SoapUI を介して TPWS を操作し、元の (.NET) クラスの名前に一致するタグを使用していました。
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ws="http://ws.myabc123.com" xmlns:ns="http://schemas.datacontract.org/2004/07/" xmlns:sys="http://schemas.datacontract.org/2004/07/System" xmlns:arr="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<soapenv:Header>
<ws:ServiceCredentials>
<ws:SubscriberId>ABC</ws:SubscriberId>
<ws:SubscriberUser>Joe</ws:SubscriberUser>
<ws:SubscriberPassword>12345</ws:SubscriberPassword>
<!--Optional:-->
<ws:SubscriberIdentityStore></ws:SubscriberIdentityStore>
</ws:ServiceCredentials>
</soapenv:Header>
<soapenv:Body>
<Group>
<Name>Cool People</Name>
<Individuals>
<Person>
<Name>Tom</Name>
<Age>25</Age>
</Person>
<Person>
<Name>Jane</Name>
<Age>27</Age>
</Person>
</Individuals>
</Group>
</soapenv:Body>
</soapenv:Envelope>