2015-02-06 100 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