2011-07-27 62 views
1

有人可以請指出我在正確的方向嗎?我試圖序列化一些類以實現雙重使用:1)以XML格式本地保存數據; 2)使用SOAP將這些類發送到Web服務。序列化到本地和SOAP與私人成員c#

我想在本地保存班級中的一些(私人)成員,但我不希望他們通過電話。有沒有辦法做到這一點,而沒有2個副本附近的同一類(一個與私人成員,而另一個沒有)?

編輯:這篇文章的重點不在於確定哪一個是我序列化私有成員的最佳方式,而是想出一種方法來在本地序列化我的數據,這樣我就可以將所有我的類信息保存爲XML我的本地盒子,但仍然能夠序列化這些成員的已定義子集,以便我可以將它們通過SOAP傳遞給Web服務。

希望有道理!

+0

XML序列化從不序列化私人成員,所以更好的問題是如何讓私人成員序列化。 –

+0

假設那些成員是公開的。 或者我可以使用序列化私有成員的另一種序列化方法。 – Tizz

+0

@John - 具體地說,'XmlSerializer'沒有。你可能會爭辯說'DataContractSerializer'可以用於(非常有限的)「XML序列化」,但* does *可以用於私有成員。 –

回答

2

我建議使用DataContractSerializer這就是WCF使用的SOAP的目的,並與DataContract可以裝飾私有成員參加系列化

這裏有一個很好的鏈接,DataContract使用 http://msdn.microsoft.com/en-us/library/ms733127.aspx

+0

是的,我已閱讀了這個,這可能是我要實現的,但是我認爲你錯過了我的帖子。這並不是要確定哪一個是我序列化私有成員的最佳方式,而是要找出一種在本地序列化我的數據的方法,這樣我就可以將我所有的類信息以XML格式保存在本地框中,但仍然能夠序列化這些成員的一個子集,以便我可以通過SOAP將它們傳遞給Web服務。 – Tizz

+0

對不起,我沒有注意到你需要兩個表示。您可以考慮將XamlSerializer(注意Xaml not Xml)用於本地XML生成,然後將DataContractSerializer用於子集生成。 – cmsjr