我正在努力创建一个 .asmx Web 服务来满足集成环境的特定需求,而在我的一生中,我无法弄清楚如何让它的一部分工作。关键是请求 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 设置为一。
我怎样才能解决这个问题?