簡體   English   中英

實現IXmlSerializable的WCF詞典

[英]WCF Dictionary implementing IXmlSerializable

我有一些使用默認DataContractSerialization的WCF服務。 一些服務方法返回Dictionary對象。 其中一個客戶端正在從WCF服務(與biztalk相關)生成XSD文件,並且他正在請求將所有詞典類型轉換為實現IXmlSerializable的新詞典類型。 我想知道這種轉換是否會出現任何意外的結果,從而可能以某種方式影響DataContract的序列化?

更新:服務器和客戶端共享相同的域dll,客戶端不會從服務生成它們。 也許在這個問題上,我沒有提到要點。 我想知道是否要通過數據合同序列化來序列化對象,在對象中實現IXmlSerializable會引起任何問題。

有一個意想不到的問題。 由於域對象已經在實現數據協定序列化,因此如果不修改整個序列化機制就無法實現IXmlSerializable。

您的客戶端與服務共享dll嗎?

除非他與服務共享庫(dll),否則在服務端進行更改不會有任何區別。 您的WCF正在返回數據,而不是類。 該數據將重構為由客戶端根據您的服務返回的WSDL中的定義創建的類。 除非您在客戶端和服務器之間共享dll,否則您將無法控制這些生成的庫(通過在服務器上進行更改)。

如果他想將生成的字典包裝在IXmlSerializable字典中,那么他可以,或者如果他想生成其他類型的字典,那么他也可以做​​到這一點,但是我認為您無法在服務器端做任何事情。

告訴您的客戶端,當他們需要對服務調用中的字典結果進行序列化時,使用以下可序列化的字典: C#序列化字典–工作示例

它接受普通字典作為構造函數參數,從而將任何字典轉換為可序列化的字典。 如果願意,您還可以返回SerializableDictionary類型作為服務調用結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM