Я давно считаю, что ваша модель домена не должна отвечать за сериализацию себя в XML. Я использовал интерфейс IXmlSerializable в прошлом, чтобы контролировать, как мои объекты сериализуются, но в идеале я предпочел бы, чтобы орехи и болты сериализации жили вне объекта.Неинтрузивные методы сериализации XML?
Однако я никогда не мог реализовать это в чистом виде, и мне было интересно, есть ли какие-либо шаблоны, которые я не замечал, чтобы это произошло. В принципе, я хочу, чтобы моя объектная модель делала это, и не обращала внимания на сериализацию XML (или любую другую сериализацию, если на то пошло), а затем передавала некоторую услугу, которая заманивает объект и сериализует его.
Я пробовал делать это с помощью методов расширения, но это не подходит, если вы хотите сериализовать коллекцию объектов типа. Я посмотрел на это с помощью оберток объектов и DTO, которые затем сериализуются, но тогда у вас есть накладные расходы на поддержание другого набора объектов и создание этих объектов, когда вы хотите сериализовать, что снова может стать беспорядочным, когда у вас есть коллекции типа.
Единственная вещь, которая использует отражение, но я буду беспокоиться об обработке накладных расходов.
Есть ли разумный способ сделать то, что я прошу, или мне просто укусить пулю и сделать мои объекты xml осведомленными?
Если вы хотите производительность, XML не является для вас форматом. – Gusdor