У меня есть класс с многочисленными Nullable <T> свойства, которые я хочу сериализовать в XML как атрибуты. Это, по-видимому, нет-нет, поскольку они считаются "сложными типами". Таким образом, вместо этого я реализую шаблон * Specified, где я создаю добавление * Значение и * Указанное свойство следующим образом:
[XmlIgnore] public int? Age { get { return this.age; } set { this.age = value; } } [XmlAttribute("Age")] public int AgeValue { get { return this.age.Value; } set { this.age = value; } } [XmlIgnore] public bool AgeValueSpecified { get { return this.age.HasValue; } }
Что хорошо работает - если свойство "Возраст" имеет значение, оно сериализуется как атрибут. Если он не имеет значения, он не сериализуется.
Проблема в том, что, как я уже упоминал, у меня много Nullable-s в моем классе, и этот шаблон просто делает вещи беспорядочными и неуправляемыми.
Я надеюсь, что есть способ сделать Nullable более удобным для XmlSerializer. Или, в противном случае, способ создать замену Nullable.
Есть ли у кого-нибудь идеи, как я могу это сделать?
Спасибо.