开发者

WCF Serialization -More Information

I read some microsoft arti开发者_如何学编程cles.They explained that WCF uses DataContractSerializer for serialization.But the articles did not explain why DataContractSerializer preferred over XmlSerialization.Can anyone give me the additional information?


Here is an article with a comparison.

Key section:

XmlSerializer

Advantages:

  1. Opt-out rather than opt-in properties to serialize. This mean you don’t have to specify each and every property to serialize, only those you don’t wan to serialize2. Full control over how a property is serialized including it it should be a node or an attribute
  2. Supports more of the XSD standard

Disadvantages:

  1. Can only serialize properties

  2. Properties must be public

  3. Properties must have a get and a set which can result in some awkward design

  4. Supports a narrower set of types

  5. Cannot understand the DataContractAttribute and will not serialize it unless there is a SerializableAttribute too

DataContractSerializer

Advantages:

  1. Opt-in rather than opt-out properties to serialize. This mean you specify what you want serialize

  2. Because it is opt in you can serialize not only properties, but also fields. You can even serialize non-public members such as private or protected members. And you dont need a set on a property either (however without a setter you can serialize, but not deserialize)

  3. Is about 10% faster than XmlSerializer to serialize the data because since you don’t have full control over how it is serialize, there is a lot that can be done to optimize the serialization/deserialization process.

  4. Can understand the SerializableAttribute and know that it needs to be serialized

  5. More options and control over KnownTypes

Disadvantages:

  1. No control over how the object is serialized outside of setting the name and the order
0

上一篇:

下一篇:

精彩评论

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

最新问答

问答排行榜