如何将复杂对象作为参数提供给Web服务功能

时间:2015-04-28 11:31:42

标签: c# .net web-services

我是使用.Net消费Web服务并面临以下问题的新手。我有wsdl以下定义

<s:element name="ClassTransfer">
        <s:complexType>
          <s:sequence>
            <s:element minOccurs="0" maxOccurs="1" name="trans" type="tns:ClassStudent" />
            <s:element minOccurs="0" maxOccurs="1" name="RollNo" type="s:string" />
          </s:sequence>
        </s:complexType>
      </s:element>
      <s:complexType name="ClassStudent">
        <s:sequence>
          <s:element minOccurs="0" maxOccurs="1" name="Subject" type="s:string" />
…
        </s:sequence>
      </s:complexType>

在代码中调用函数

SchoolWebService.RemoteClassApi objSchool = new SchoolWebService.RemoteClassApi();
res= objSchool.ClassTransfer(…)

它要求我提供两个参数: ClassStudent trans & string RollNo

RollNo可以简单地作为字符串提供,但我不知道如何提供trans对象?

请帮忙。

1 个答案:

答案 0 :(得分:0)

通常应该生成类“ClassStudent”,所以尝试

var studentToTransfer = new ClassStudent {Subject = "Foo"};
SchoolWebService.RemoteClassApi objSchool = new SchoolWebService.RemoteClassApi();
res= objSchool.ClassTransfer(studentToTransfer , "5A" );

注意:该类是在项目的“服务引用”文件夹中生成的。它不遵循“一档一类”原则;)