将复杂类型参数传递到Web Service

时间:2015-03-27 21:46:30

标签: c# .net web-services wcf

我有一个WSDL端点,我已将其添加到我的Project作为服务引用,称为ContentService,效果很好。

然后在我的代码中,我正在声明客户端和相关请求,UnitInfo如下:

  // Both of these declarations work fine    
  ContentService.ContentServiceClient client = new   ContentService.ContentServiceClient();
  ContentService.UnitInfo request = new ContentService.UnitInfo();

我需要传递以下信息:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <UnitInfo xmlns="http://www.acme.com/acme/2007/02">
            <!-- Optional -->
            <POS>
                <!-- Optional -->
                <Source>
                </Source>
            </POS>
            <!-- Optional -->
            <UnitInfos>
                <!-- Optional -->
                <Units HowMany="?">
                    <!-- Optional -->
                    <Amenities/>
                    <!-- Optional -->
                </Units>
            </UnitInfos>
        </UnitInfo>
    </Body>
</Envelope>

问题是我的请求变量对于UnitInfos属性为null,如何在发送之前在Units部分设置'HowMany'属性。另外,如何将请求发送到端点?

网络上的所有示例都显示了一个简单的添加,您要发送两个整数,但在这里我需要发送一个更复杂的结构。

1 个答案:

答案 0 :(得分:1)

首先,您通常会发现发送整数或更复杂的内容之间没有区别:

client.Send(new ContentService.UnitInfo());

二。当你写<UnitInfos>并且它不会存在于信封中时,如果设置了null .-