Я работаю над созданием веб-сервиса .asmx, чтобы удовлетворить конкретные потребности интеграционной среды, и я не могу понять, как заставить один его раздел работать. Ключ в том, что запрос WSDL должен быть примерно таким: (Обратите внимание, что я удалил мыльный конверт и информацию о пространстве имен)
<methodOne>
<myValue>string</myValue>
<myDemoGroup>
<myDemoGroupItem>string</myDemoGroupItem>
<myDemoGroupItem2>string</myDemoGroupItem2>
</myDemoGroup>
<myComplexGroup>
<mySubStructure>
<subItem1>string</subItem1>
<subItem2>string</subItem2>
</mySubStructure>
</myComplexGroup
</methodOne>
Теперь я знаю, как позаботиться о большей части этого, тэг метода один обрабатывается именем моего параметра, а затем элементы внутри являются просто элементами в классе. ТАК что-то вроде этого получает все, кроме «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;}
}
Вопрос в том, как определить «myComplexGroup», чтобы разрешить создание нескольких элементов mySubStructure, но при этом вывести все элементы в WSDL.
Если я продолжу и сделаю что-то подобное
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 он просто говорит MySubStructureInfo с nil, установленным в единицу.
Как я могу обойти это?