[英]Missing the end of the XML when serializing with DataContractSerializer
[英]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 XmlDocument
或XDocument
),但仍然可以讓你控制。
一個警告: XmlSerializer
對您的類型提出要求(公共,公共無參數構造函數,僅限於公共成員,沒有序列化回調等)。 它們通常不是問題。
但是,我可能會寫二進制而不是xml; p(只是沒有BinaryFormatter
,它有....扭結)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.