2012-05-01 26 views
0

我有一個自定義類,只有一個字符串類型的屬性。我的課有什麼辦法支持將序列化作爲XML屬性?

試圖連載這個類的一個對象作爲使用XmlSerializer的結果在異常的屬性:

XmlAttribute/XMLTEXT不能用於編碼複雜類型

現在我知道我可以捏造這我創建一個僞字符串屬性在我的包含類型和序列化,而是有什麼辦法讓我的自定義類支持它本質?

.Net類如何做(例如DateTime)?

+0

只是檢查,你已經標記你的類爲'[Serializable]',對吧? –

+1

不是。我認爲這只是二進制序列化所必需的? – GazTheDestroyer

+0

啊,對不起。是。這是這個問題的屬性,不是它。 –

回答

1

爲此,您必須實施IXmlSerializable並完全控制您的類型是如何序列化/反序列化的。儘管如此,爲了這樣一個簡單的任務,卻不得不付出巨大的努力。當涉及Nullable類型時,大多數人都被這個問題困住了。

+2

你確定這會行嗎? .Net如何知道我不會嘗試在我的實現中連載一個或多個xml元素? – GazTheDestroyer

+0

你在控制序列化,所以你可以說寫什麼http://msdn.microsoft.com/en-us/library/system.xml.serialization.ixmlserializable.writexml.aspx – empi

+0

我知道我可以說,但.Net不知道我要做什麼,所以它不知道我的類是否可以包含在屬性中。我的問題是如何告訴.Net我可以序列化爲一個屬性。 – GazTheDestroyer

相關問題