开发者

DataContractSerializer vs XmlSerializer: Pros and Cons of each serializer

My desktop application serializes objects using XmlSerializer. I was suggested to leverage DataContractSerializer instead.

Under which scenarios should I use DataContractSerializer?

Many thanks

Comments.

1. The output XML file is stored locally. No ot开发者_如何学Goher applications deserialize objects from that XML file.

2. My application runs with .NET Framework 3.5 SP1.


Dan Rigsby has the ultimate post on this - go read it!

XmlSerializer vs. DataContractSerializer (web archive)

He says all there is to say, and in a very convincing way.

In short:

XmlSerializer:

  • has been around for a long time
  • is "opt-out"; everything public gets serialized, unless you tell it not to ([XmlIgnore])

DataContractSerializer is:

  • the new kid in town
  • optimized for speed (about 10% faster than XmlSerializer, typically)
  • "opt-in" - only stuff you specifically mark as [DataMember] will be serialized
  • but anything marked with [DataMember] will be serialized - whether it's public or private
  • doesn't support XML attributes (for speed reasons)
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜