私は統合環境の特定のニーズを満たすために .asmx Web サービスの作成に取り組んでいますが、私の人生では、その 1 つのセクションを機能させる方法を理解できません。重要なのは、リクエスト WSDL が次のようなものである必要があるということです。(soap エンベロープと名前空間の情報を削除したことに注意してください)
<methodOne>
<myValue>string</myValue>
<myDemoGroup>
<myDemoGroupItem>string</myDemoGroupItem>
<myDemoGroupItem2>string</myDemoGroupItem2>
</myDemoGroup>
<myComplexGroup>
<mySubStructure>
<subItem1>string</subItem1>
<subItem2>string</subItem2>
</mySubStructure>
</myComplexGroup
</methodOne>
これで、ほとんどの処理方法がわかりました。メソッドの 1 つのタグはパラメーターの名前で処理され、内部の項目はクラス内の単なる要素です。SOこのようなものは、「MyComplexGroup」を除くすべてを取得します
[Web Method]
public void MyWebMethod(MyWebMethodRequest methodOne)
{
//Do my stuff
}
public class MyWebMethodRequest
{
public string myValue {get; set;}
public MyDemoGroupInfo myDemoGroup {get; set;}
}
public class MyDemoGroupInfo
{
public string myDemoGroupItem {get; set;}
public string myDemoGroupItem2 {get; set;}
}
問題は、すべての項目を WSDL に出力しながら、複数の mySubStructure 要素を作成できるように "myComplexGroup" を定義する方法です。
私が続けてこのようなことをしたら
public class MyComplexGroupInfo
{
public List<MySubStructureInfo> mySubStructure {get; set;}
}
public class MySubStructureInfo
{
public string subItem1 {get; set;}
public string subItem2 {get; set;}
}
その後、オブジェクトに追加public MyComplexGroupInfo myComplexGroup {get; set;}
してその一部を取得しますが、subItem1 と subItem2 をリストする代わりに、nil を 1 に設定して MySubStructureInfo と表示するだけです。
どうすればこれを回避できますか?