2010-01-18 45 views
1

我有一個對象(User),它沒有標記爲[Serializable()]將不可序列化的對象轉換爲C中的字符串#

我需要將整個對象(包括子對象)轉換爲字符串。

這實際上需要將對象從未標記爲[Serializable()]的第三方工具響應轉換而來。

如何將整個C#對象轉換爲上述場景的字符串/ xml?

回答

4

XmlSerializer不需要Serializable屬性,但它只能序列化公共成員。

問候
奧利弗Hanappi


編輯:您可以創建自己的適配器類,它實現了IXmlSerializable接口,並表示一個User對象構造時您的適配器獲得。

+0

我怎樣才能得到非公開成員的字符串/ xml第三方工具有一套方法,我可以從中獲取值我需要從每個方法獲取值或否則非公開成員值 – Prasad 2010-01-18 07:38:32

+0

您可以在適配器類上實現IXmlSerializable接口(請參閱編輯)。 – 2010-01-18 07:44:08

1

如果JSON滿足您的需求,您可以嘗試JsonExSerializer,因爲它不需要任何屬性來裝飾目標對象。

0

您可以使用反射來查找您感興趣的所有成員,例如,公共屬性和/或私人領域,然後在你走的時候構造一個xml文檔。

這樣可以保持代碼的通用性和自定義,只要你喜歡。 :)

但是,請記住,在運行時反射可能是一個非常緩慢的過程。 :(

相關問題