[XML, .NET] Переопределение атрибутов сериализации
аттрибуты менять никак, но можно поддержать IXmlSerializable, и установленные атрибуты интерпретировать самому как хочется
А я бы вообще сделал свою сериализацию. Конечно, это может быть займет больше времени, но темм не менее придает тебе большую гибкость.
просто у меня уже есть тупой навороченный сериализатор. и не хочется ваять еще один такой же, который будет незначительно (но принципиально) отличаться от существующего.
Они совсем не выглядят критическими.
Мне нужен сериализатор, но такой, чтобы не было сериализации пустых элементов. И все. То есть нужно как-то контролировать, что можно сериализовать,а что нет. Но не заранее, а в процессе выполнения.
При этом уже есть сериализатор, который формирует xml по иерархии классов. Хочется как-то соптимизировать его
какой объем xml-я планируется?
сериализовать надо find-dialog с очень большим числом параметров, которые уместились в хитрой иерархии классов
так какой объем результирующего xml-я? 100 байт? метр? 100 мб?
про какие требования ты говоришь?
Забей на требования "чтобы не было сериализации пустых элементов".
Чем мешают эти пустые элементы?
это самое главное требование, ради которого была поставлена задача
существующий сериализатор генерит файл объемом в 3К
а можно gzip использовать?
зачем?
ае! 512-ое сообщение 8-)
меня напрягают пустые элементы
Это должно чуть ли не одной строчкой меняться (ведь в нем точно есть проверка на то, пустой элемент или нет; а если нет - как раз ее и надо добавить).
проблема пустых значений, кажется, решена атрибутом [XmlElement(IsNullable = false)]
короче, проблема видимо решена
существующий сериализатор генерит файл объемом в 3Кна таком объеме, можно как вариант, результирующий xml-ник патчить, вместо изменения сериалайзера.
Оставить комментарий
ruben-69
Есть иерархическая структура. Ее необходимо сериализовать. Но не просто скинуть все данные, а сериализовывать только те, которые имеют не "пустые" значения. ("Пустые" значения определены для каждого поля/свойства класса. Пример: 0, None, string.empty)Идея такая, что надо как-то менять атрибуты, контролирующие сериализацию. То есть возможно ли в момент выполнения где-то проставить, например, [XmlIgnoreAttribute].
Читабельного материала пока найти не удалось
Пытаюсь осилить XmlAttributeOverrides, но пока не очень понятно
Вопрос: как менять атрибуты во время выполнения программы?