C# XML Как сериализовать подмножество объекта и сериализовать подмножество свойств, основанных на файле конфигурации - PullRequest
0 голосов
/ 03 апреля 2020

Атрибуты исходного кода не хотят быть затронутыми, потому что у нас более одного случая сериализации, поэтому я хочу принимать решения о сериализации, которые не влияют на другие процессы вокруг меня.

Решение иметь Белый список конфигурации таков, что обновления того, что включено в сериализацию, могут быть простым изменением конфигурации вместо загрузки кода.

До сих пор я думал о том, чтобы прочитать в конфиге список имен родительских объектов и имен свойств и выбросить этих щенков в таблицу ha sh. L oop через все свойства моего сложного объекта с помощью GetProperties() и проверьте, совпадает ли имя комбо, на которое я сейчас смотрю, с комбо, которое существует в ha sh. Если это не совпадение, то через атрибут xmlIgnore для него через XmlAttribteOverrides.

Существует ли более эффективный способ применения белого списка сериализации?

1 Ответ

0 голосов
/ 03 апреля 2020

XmlAttributeOverrides - это то, что вам нужно, чтобы быть действительно действительно осторожным - он генерирует сборки каждый раз, когда вы new XmlSerializer используете его, поэтому вы должны кэшировать и использовать повторно , Честно говоря, может быть лучше использовать условную сериализацию; то есть для

public int Foo {get;set;}

вы можете добавить такой метод, как:

public bool ShouldSerializeFoo() {...}

, который должен возвращать true / false в зависимости от того, должен ли он сериализоваться в этом случае.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...