2015-02-06 126 views
2

我有一个WebRequest的服务(外部客户端)发送命名空间被添加到XML

<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被解析成函数的参数,客户对象然而填补了商品对象为null。当我在Goods和Good之间添加额外的节点层并使用XMLElement接受值时,我发现节点Good现在有一个我没有添加的名称空间。在内部,好现在是<Good xlmns="http://example/Int">,我该如何防止.NET添加xmlns?

+0

你的意思是,当你从套接字读取的字节中你会得到一个添加了xmlns?或者你的意思是说,它被添加时,你解析为XML?或者你的意思是说,当你创建的XML被添加?或者你的意思是说,当你解析它后保存xml,它被添加?你能添加一个简短的例子来证明这个问题吗? – Default 2015-02-06 11:32:32

+0

您需要找出该名称空间来自哪里,并理解其添加的原因。你不应该仅仅因为你不了解而去除某些东西,在XML中命名空间声明是非常重要的。 – Flynn1179 2015-02-06 17:04:38

回答

1

转换Goods从整数列表中第一个字符串列表:

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

,并用它来填充XML