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