如何通过.asmx Web服务获取此请求结构?

时间:2008-12-15 13:58:40

标签: c# web-services wsdl asmx

我正在创建一个.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。

我怎样才能解决这个问题?

2 个答案:

答案 0 :(得分:3)

如果您有需要实现的WSDL合同,您可以尝试wsdl.exe /serverInterface来生成服务存根。

答案 1 :(得分:1)

也许是一个显而易见的问题,但您是否尝试使用wsdl.exe查看它吐出的内容?您可以随时使用它作为指导(即您不必直接使用该类)。