Передовая практика сериализации / десериализации XML: XmlSerializer или Linq To XML? - PullRequest
2 голосов
/ 20 мая 2011

В настоящее время, каков наилучший способ сериализации / десериализации доменных объектов в XML-документ?XmlSerializer или Linq To XML?Каковы плюсы и минусы каждого решения?

1 Ответ

2 голосов
/ 28 ноября 2011

Вот главное преимущество использования Linq для XML в настоящее время .

XmlSerializer требует конструктор по умолчанию (без параметров). Итак, если вы делаете какой-либо вид инверсии управления и передачи зависимостей в ваш класс через конструктор, вам также нужно иметь конструктор по умолчанию, который обходит введение этих зависимостей. Это своего рода побеждает всю цель использования инжектора конструктора.

Конечно, с Linq to XML вам нужно написать собственный код сериализации, но я сделал это с помощью набора методов, таких как FromXml и ToXml, или просто с помощью свойства Xml с getter и setter, которые выполняют сериализацию именно тех полей, которые необходимо сохранить. Мне нравится иметь этот элемент управления в коде вместо того, чтобы использовать атрибуты некоторых свойств, чтобы их игнорировать.

...