DataContractSerializer против XmlSerializer: плюсы и минусы каждого сериализатора - PullRequest
81 голосов
/ 24 марта 2010

Мое настольное приложение сериализует объекты, используя XmlSerializer. Вместо этого мне предложили использовать DataContractSerializer.
В каких случаях я должен использовать DataContractSerializer?

Большое спасибо

Комментарии.
1. Выходной файл XML хранится локально. Другие приложения не десериализуют объекты из этого XML-файла.
2. Мое приложение работает с .NET Framework 3.5 SP1.

1 Ответ

107 голосов
/ 24 марта 2010

Дэн Ригсби имеет окончательный пост об этом - иди прочитай его!

XmlSerializer против DataContractSerializer (веб-архив)

Он говорит, что все, что можно сказать,и очень убедительно.

Короче говоря:

XmlSerializer:

  • существует уже давно
  • is "opt-из";все общедоступное становится сериализованным, если только вы не скажете, что это не нужно ([XmlIgnore])

DataContractSerializer:

  • новый ребенок в городе
  • , оптимизированный дляскорость (примерно на 10% быстрее, чем у XmlSerializer, обычно)
  • «opt-in» - только те вещи, которые вы специально пометили как [DataMember], будут сериализованы
  • , но все, помеченное [DataMember], будетсериализовано - public или private
  • не поддерживает атрибуты XML (по соображениям скорости)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...