Да, я лично использую автоматическую сериализацию XML - хотя я использую DataContractSerializer, первоначально введенный из-за WCF, вместо этого (возможность сериализации типов без атрибутов вообще очень полезна), поскольку там не встроены типы. Конечно, вам необходимо знать тип объекта, который вы десериализуете при загрузке обратно.
Большая проблема с этим сложно сериализовать и для атрибутов, не применяя IXmlSerializable для типа, данные которого вы можете захотеть быть написаны так или подвергать другим типам, которые сериализатор может обрабатывать изначально.
Я думаю, что самая большая проблема заключается в том, что вы не можете сериализовать интерфейсы автоматически, потому что DCS хочет иметь возможность создавать экземпляры снова, когда он получает XML обратно. Стандартные интерфейсы сбора данных, однако, поддерживаются изначально.
В целом, однако, я нашел маршрут DCS самым быстрым и безболезненным.
В качестве альтернативы вы также можете исследовать использование Linq для XML для чтения и записи XML, если вам нужен полный контроль, но вам все равно придется обрабатывать типы на члене по элементам с этим.
Я смотрел на это недавно (избегая его, как чуму, потому что я не мог понять смысла), прочитав об этом раннем доступе к новой книге Джона Скита. Должен сказать - меня больше всего впечатлило то, как легко он работает с XML.
которые «стандартные классы»? Этот вопрос нуждается в уточнении. –
@DDavies: Я считаю, что он имеет значение с XmlDocument, XmlElement, XmlAttribute и т. Д. .... т.е. совместимые со стандартами W3C классы XML. – jrista