簡體   English   中英

如何選擇Xml序列化,DataContractSerializer和LINQ to XML來序列化簡單對象樹?

[英]How do I choose between Xml serialization, DataContractSerializer and LINQ to XML for serializing a tree of simple objects?

我需要將一個簡單對象樹序列化為XML文件 - 自從我上次不得不這樣做以來世界發生了變化......

(我不關心XML的架構,如果需要,支持人員可以理解該文件)

那么在.net中選擇不同的“easy xml”API時要考慮的權衡是什么?

這就是我如何考慮選項:

LINQ to XML - 完全控制XML和對象的設計,是3個選項中任意一個的最多代碼。

DataContractSerializer - 很少或沒有對XML的控制,可以處理大多數對象

XmlSerializer - 完全控制XML,但您必須以Xml序列化喜歡的方式設計對象。

DataContractSerializer不一定發出“典型”xml,並且您對輸出沒有太多控制權。 但是,如果需要,它確實支持完整圖表。 如果你想要xml,並且不需要全圖,我會傾向於使用XmlSerializer - 它將避免編寫任何代碼來手動遍歷數據(ala XmlDocumentXDocument ),但仍然可以讓你控制。

一個警告: XmlSerializer對您的類型提出要求(公共,公共無參數構造函數,僅限於公共成員,沒有序列化回調等)。 它們通常不是問題。

但是,我可能會寫二進制而不是xml; p(只是沒有BinaryFormatter ,它有....扭結)。

暫無
暫無

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

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