我正在创建一个.asmx web服务来满足集成环境的特定需求,对于我的生活,我无法弄清楚如何让它的一部分工作。关键是请求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>
现在,我知道如何处理大部分内容,方法一个标签由我的参数名称处理,然后里面的项目只是类中的元素。所以像这样的东西除了“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,而是简单地将nS设置为1的MySubStructureInfo。
我怎样才能解决这个问题?
答案 0 :(得分:3)
如果您有需要实现的WSDL合同,您可以尝试wsdl.exe /serverInterface
来生成服务存根。
答案 1 :(得分:1)
也许是一个显而易见的问题,但您是否尝试使用wsdl.exe查看它吐出的内容?您可以随时使用它作为指导(即您不必直接使用该类)。