2

我正在努力创建一个 .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 设置为一。

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

4

2 回答 2

3

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

于 2008-12-15T14:14:29.293 回答
1

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

于 2008-12-15T14:02:24.653 回答