Ответ 1
Дэн Ригсби имеет окончательную должность на этом - иди, прочитай это!
XmlSerializer и DataContractSerializer (веб-архив)
Он говорит все, что можно сказать, и очень убедительно.
Короче:
XmlSerializer:
- существует долгое время
- - "отказ"; все public становится сериализованным, если вы не скажете это не ([XmlIgnore])
DataContractSerializer:
- Новый ребенок в городе
- оптимизирован для скорости (примерно на 10% быстрее, чем XmlSerializer, обычно)
- "opt-in" - только то, что вы специально отметили как
[DataMember]
будет сериализовано - но все, что помечено
[DataMember]
, будет сериализовано - будь тоpublic
илиprivate
- не поддерживает атрибуты XML (по причинам скорости)