通过C#Web服务获取xml数据

sca*_*cci 5 c#

我需要能够从Java WebService接收这个xml数据,我不确定在我的WebMethod中公开什么,所以我可以使用它?这只是一个基本的订单和项目.在.Net中,我只是传递了一个订单对象列表.

我应该进一步扩展.这是一个Oracle BPEL流程,需要映射到这个公开的C#WebService.我需要公开OrderNumber,ItemNumber等(如XML所示).我遇到的问题是我会有1到多个项目等,所以我不能只公开基本项(string,int).

对于大多数社区来说可能相当微不足道......只是不确定该怎么做?任何建议都非常感谢.

我可以做一些事情(构建一个订单对象,它似乎像我期望的那样显示xml?)

[WebMethod]
public static List<Orders> GetOrders(List<Orders> ordersList)
{
  List<Orders oList = ordersList;

  return oList;
}
Run Code Online (Sandbox Code Playgroud)

XML:

<Order>
  <OrderNumber>12345</OrderNumber>
  <OrderDate>01/25/2010</OrderDate>
  <OrderSource>Affiliate123</OrderSource>
  <Items>
     <ItemNumber>123478</ItemNumber>
     <Qty>5</Qty>
     <UOM>EA</UOM>
     <Description>Test Item</Description>
  </Items>
 </Order>
Run Code Online (Sandbox Code Playgroud)

lad*_*dge 0

你已经回答了你自己的问题。.NET Web 服务框架会将 的返回类型映射List<T>到 SOAP 级别的序列T,就像您使用了T[]( 的数组T) 一样。

当我编写像您一样的快速示例服务时,这是它返回的 XML:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <GetOrdersResponse xmlns="http://tempuri.org/">
      <GetOrdersResult>
        <Order>
          <OrderNumber>int</OrderNumber>
          <OrderDate>dateTime</OrderDate>
          <OrderSource>string</OrderSource>
          <Items>
            <Item xsi:nil="true" />
            <Item xsi:nil="true" />
          </Items>
        </Order>
        <Order>
          <OrderNumber>int</OrderNumber>
          <OrderDate>dateTime</OrderDate>
          <OrderSource>string</OrderSource>
          <Items>
            <Item xsi:nil="true" />
            <Item xsi:nil="true" />
          </Items>
        </Order>
      </GetOrdersResult>
    </GetOrdersResponse>
  </soap:Body>
</soap:Envelope>
Run Code Online (Sandbox Code Playgroud)

您的 BPEL 层应该能够非常轻松地使用它。