2009-12-11 94 views
3

設置我DataContracts命名爲 「」,它刪除了一個命名空間,但我不得不刪除其他:RESTFUL WCF中刪除所有的xmlns

的xmlns:I =「http://www.w3.org/2001/XMLSchema-instance「

如果沒有其他方法,我如何在返回並序列化命名空間之前序列化我的類?

我必須這樣做才能與其他公司API一起工作。

+0

檢查這個答案: http://stackoverflow.com/questions/7278569/how-to-remove-xml-namespace-when-return-type-is-generic-type-in​​-wcf-restful -serv/16675882#16675882 – DaniilZ 2013-05-21 17:26:34

回答

1

你唯一真正的選擇,除了扔掉WCF之外,是改變你的服務契約來返回一個流並自己做XML序列化。你仍然可以使用數據合約序列化器,將所有命名空間轉換爲一個字符串去掉,然後轉換回流,但這聽起來很討厭。

如果您需要接受沒有POST機構中的名稱空間的XML,那麼您將面臨更多的痛苦。在那種情況下,我會很快轉儲WCF。

+0

我已經測試了沒有命名空間的情況下向我的WCF發送xml,它似乎已經工作。我會考慮更改服務合同,謝謝。 – 2009-12-11 20:29:00

+0

出於好奇,接受發佈主體的參數是什麼數據類型? – 2009-12-11 20:50:56

+0

當我測試時,我剛發佈了一個沒有名稱空間的xml格式的字符串,接收函數參數對象是一個自定義類,xml被序列化成...我的數據契約 – 2009-12-12 22:04:40

0

試着刪除DataContract和DataMember屬性。這可能會解決您的問題。