У меня есть класс с многочисленными Nullable свойствами, которые я хочу, чтобы они были сериализуемы в XML как атрибуты.Это, очевидно, нет-нет, так как они считаются «сложными типами».Таким образом, вместо этого я реализую шаблон * Specified, в котором я создаю дополнение * Value и * 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; }
}
Что работает нормально - если свойство 'Age' имеет значение, оно сериализуетсякак атрибут.Если оно не имеет значения, оно не сериализуется.
Проблема в том, что, как я уже говорил, в моем классе много Nullable-ов, и этот шаблон просто делает вещи беспорядочными и неуправляемыми.
Я надеюсь, что есть способ сделать Nullable более дружественным к XmlSerializer.Или, в противном случае, способ создать замену Nullable, которая есть.
У кого-нибудь есть идеи, как мне это сделать?
Спасибо.