簡體   English   中英

XML序列化,在這種情況下為IXmlSerializable或Attributes

[英]XML Serialization, in this case, IXmlSerializable or Attributes

我之前已經做過一些XML序列化,但是我使用了Attributes,我不確定這對我的下一個任務是否可行,這是XML manip需求的簡要列表。

  • 通用XMl操作,綁定到樹視圖,無模式。
  • 加載/保存XML。
  • 加載/保存屬性以及值(我相信術語是“元素文本”?),並注意節點的名稱。
  • 可以安全地忽略注釋,也可以安全地忽略文檔信息標記(即UTF-8和架構標簽)

有關如何最好地處理此問題的任何建議?

不知道“之前但我使用屬性”的確切含義,但我也建議使用XmlSerializer:

  • 使用“簡單”類,通常可以直接使用。
  • 集合可能需要做更多的工作,但這取決於您的要求和對象結構。
  • XML序列化器中還有其他構建,例如XAML或WCF DataContractSerializer。 都有優點和缺點。 但是,如果您想微調XML格式,則XMLSerializer是最靈活的一種。
  • 您可以逐步使用格式:如果默認看起來不錯,則完成。 如果不是這樣,在大多數情況下,您只需添加一些屬性。
  • 如果要完全控制,您仍然可以實現IXmlSerialize來微調您的格式。
  • 一切都基於每個類:在適當的地方使用缺省值,在需要的地方添加一些屬性,並根據需要實現IXmlSerializable。

我可能不會理會對象模型和IXmlSerializable聽起來您可能就XmlElement / XmlDocument而言也是如此-即將數據作為xml塊傳遞。 由於您沒有模式,因此將其粉碎將毫無意義。 您也可以通過xml DOM來完成。

當您說treeview時-這是Winforms,asp.net,wpf嗎? 我相信asp.net樹視圖可以使用xml源,但是對於Winforms,您必須自己迭代節點。

我建議您使用.NET框架支持的簡單XML序列化。

查看這些MSDN文檔

如何序列化對象

如何反序列化對象

暫無
暫無

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

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