我有一个发送的WebRequest服务(外部客户端)

<Sales>
   <Customer>
        <Name>John</Name>
   </Customer>
   <Goods>
       <Good>
          <id>5445</id>
       </Good>
       <Good>
          <id>6767</id>
       </Good>
    </Goods>
 </Sales>


但是,当接收到XML时,货物会神秘地添加一个名称空间。

<Good xlmns="http://example.com/INT">


我的服务是:

[OperationContract]
[WebInvoke(UriTemplate = "SendRequest", BodyStyle = WebMessageBodyStyle.Wrapped, Method = "POST", ResponseFormat = WebMessageFormat.Xml)]
public Sales(clsCustomer Customer, clsGoods Goods)


我必须删除Xlmns。

将XML解析为函数的参数时,将填充Customer对象,但是Goods对象为null。当我在Goods和Good之间添加一个额外的节点层并使用XMLElement接受值时,我发现Good节点现在有一个我没有添加的名称空间。在内部,Good现在是<Good xlmns="http://example/Int">,如何防止.NET添加xmlns?

最佳答案

首先将Goods从整数列表转换为字符串列表:

Goodstr = Goods.ConvertAll(delegate(int i) { return i.ToString(); });


并使用它来填充XML

10-06 05:10