2011-02-25 57 views
0

我是cheaching此鏈接:前綴在web服務與SOAP

http://es.w3support.net/index.php?db=so&id=665327

我這是什麼,我需要的,我用的是同一種與SoapDocumentMethodAttribute和調用方法代碼的一部分,這是我的題。

在鏈接中,它們顯示如何獲得帶有前綴的響應,並且工作正常,但與請求相鄰嗎?,我需要向客戶端發送帶有前綴的xml結構。

我嘗試添加 XmlSerializerNamespaces xsn = new XmlSerializerNamespaces(); xsn.Add(「mes-root」,「CAP」);

invoke方法之前,但不工作

我希望有人能幫助我,我真的很沮喪

回答

0

首先,除非你使用.NET 2.0卡住了,你不應該」使用ASMX Web服務或客戶端進行任何新的開發。您應該使用「添加服務引用」,而不是「添加Web引用」。其次,您鏈接的文章是XML Serialization - Missing Namespace Prefix at client end的翻譯版本。

第三,請注意,問這個問題的人運行的是.NET 1.1,發佈了不正確的XML,並且從未真正報告過真正的問題。最後,如果你的客戶端需要一個特定的前綴,那麼他們的代碼中就有一個致命的嚴重錯誤:這意味着它們實際上並不是使用XML進行通信。在XML中,前綴只是實際名稱空間的別名。 是否爲前綴應該不重要,更不用說實際前綴是什麼。以下都是相同的:

<root xmlns="somenamespace"/> 

<a:root xmlns:a="somenamespace"/> 

<b:root xmlns:b="somenamespace"/> 

注意的是,OP是具有實際的問題是,她正在運行的.NET 1.1,其中有幾個錯誤在處理XML的。這個問題與前綴無關!

+0

re:'finally',我最近與一些需要特定前綴的Flash開發人員一起工作,似乎他們使用字符串/模式匹配而不是結構化xml來解析xml。我解釋了它應該如何工作,但顯然這是他們使用的Flash xml庫/框架的限制。對我來說,這聽起來很奇怪,但是的確如此。事實證明,儘管你無法使用DataContractSerializer控制別名,但你可以通過XmlSerializer進行一些控制。 – 2011-02-25 04:00:33