Возможно ли динамически настроить сериализацию XML? - PullRequest
1 голос
/ 23 сентября 2010

У меня есть несколько классов, которые я сериализирую / десериализую, у каждого из которых есть несколько свойств, некоторые из которых я хотел бы динамически использовать с атрибутом «Xml.Serialization.XmlIgnore».Идея заключается в том, что если я хочу сохранить определенную информацию о свойстве, я управляю им, устанавливая / снимая флажок.Это вообще возможно?

Ответы [ 2 ]

3 голосов
/ 23 сентября 2010

Да, это возможно с помощью класса XmlAttributesOverrides.Это позволяет генерировать атрибуты динамически, а не указывать их в исходном коде.Хорошим примером является статья библиотеки MSDN для класса.

2 голосов
/ 23 сентября 2010

Можно ли динамически включать / отключать атрибут .net?

Нет.Атрибуты запекаются в метаданных сборки во время компиляции.Вам нужно будет реализовать пользовательскую сериализацию.

Можете ли вы просто представить себе последствия возможности добавления / удаления атрибутов во время выполнения?Вы можете спровоцировать катастрофу, удалив, например, атрибут Serializable из класса String или присвоив атрибуту ComVisible значение false в этом же классе: -)

...