WCF Сериализация -Больше информации - PullRequest
0 голосов
/ 05 апреля 2010

Я прочитал некоторые статьи Microsoft. Они объяснили, что WCF использует DataContractSerializer для сериализации. Но в статьях не объясняется, почему DataContractSerializer предпочтительнее XmlSerialization. Может ли кто-нибудь дать мне дополнительную информацию?

Ответы [ 2 ]

4 голосов
/ 05 апреля 2010

Здесь - статья со сравнением.

Ключевой раздел:

XmlSerializer

Преимущества:

  1. Отказаться, а не отказаться от свойств для сериализации. Это означает, что вам не нужно указывать каждое свойство для сериализации, только те, которые вы не хотите сериализовать2. Полный контроль над тем, как свойство сериализуется, в том числе оно должно быть узлом или атрибутом
  2. Поддерживает больше стандарта XSD

Недостатки:

  1. Может только сериализовать свойства

  2. Свойства должны быть открытыми

  3. Свойства должны иметь get и набор, что может привести к некоторому неудобному дизайну

  4. Поддерживает более узкий набор типов

  5. Не может понять DataContractAttribute и не будет его сериализовать, пока не будет SerializableAttribute тоже

DataContractSerializer

Преимущества:

  1. Отключить, а не отказаться от свойств для сериализации. Это означает, что вы указываете, что вы хотите сериализовать
  2. Поскольку это опция, вы можете сериализовать не только свойства, но и поля. Вы даже можете сериализовать непубличных участников, таких как частные или защищенные участники. И вам не нужен набор для свойства (однако без установщика вы можете сериализовать, но не десериализовать)

  3. Примерно на 10% быстрее, чем XmlSerializer, сериализует данные, потому что, поскольку у вас нет полного контроля над тем, как они сериализуются, можно многое сделать для оптимизации процесса сериализации / десериализации. *

  4. Может понимать атрибут SerializableAttribute и знать, что его нужно сериализовать

  5. Дополнительные параметры и контроль над KnownTypes

Недостатки:

  1. Нет контроля над сериализацией объекта, если не заданы имя и порядок
2 голосов
/ 05 апреля 2010

Вот еще одна действительно хорошая статья в журнале MSDN, посвященная Сериализация WCF .

...