2010-07-05 65 views
0

我需要將XML文檔傳遞給Web服務。是否可以簡單地指定一個方法的合同,說使用WCF將XML文檔傳遞到Web服務

void Method(XmlDocument myDocument);

,並以標準的方式實現它?我需要保持我的Silverlight功能,因此我想避免將XML寫入流...這是一個好方法嗎?

預先感謝您的提示和答覆!

乾杯

回答

0

我親自做過這個(被迫太...)。 WCF在WCF綁定中具有字符串緩衝區和字符串反序列化限制,如果您通過接口發送任何大小的數據,則需要重寫該限制。但是,這就是說,如果你的要求是簡單地發送XML,然後創建一個類,用WCF XML屬性裝飾它,然後聲明你的接口發送它們。

如果您正在與現有服務進行互操作,您應該能夠使用Windows SDK中的WCF服務工具爲您創建一個針對該服務的WCF綁定。

+0

嗨,Spence,你寫道:「但是,如果你的要求是簡單地發送XML然後創建一個類,用WCF XML屬性裝飾它,然後聲明你的界面發送它們。「這聽起來很有趣,你能舉一些例子嗎?請記住,我需要符合Silverlight,它不支持XmlSerializer或這樣的東西... – Jamie 2010-07-06 11:30:39

+0

http://msdn.microsoft.com/en-us/library/ms733127.aspx – Spence 2010-07-06 15:01:53

+0

這是多一點像爲您提供的教程:http://msdn.microsoft.com/en-us/library/ms733811.aspx – Spence 2010-07-06 15:03:52

1

如果我記錯,XmlDocument的不是可序列化(這是需要一個web服務)。

最簡單的方法是將XML文件寫入到一個字符串(XML),發送給你的互聯網服務和那裏你可以再次反序列化到一個XmlDocument

+0

您是否想過創建合同,例如void M(string myXml);並將XML作爲字符串來回傳遞? – Jamie 2010-07-05 10:22:57

+0

是的..但我同意Marc_s ..仔細看看爲什麼你在傳遞整個XML之前這樣做.. WCF做了整個序列化和反序列化,如果對象是可序列化的。 – Noctris 2010-07-05 10:44:15

0

如果你必須在XML文檔中,通傳它作爲一個字符串。但是WCF服務的全部重點是你不必自己調用XML - 只需調用方法並將它傳遞給一些參數(int,字符串,你自己的類型),WCF運行時就可以處理所有棘手的XML你的東西....

+0

我寧願需要傳遞我的XML,然後在Silverlight中使用它,它具有非常有限的XML(序列化/反序列化)功能。因此恐怕我需要將它作爲字符串傳遞...... – Jamie 2010-07-05 10:59:37