Ho una classe con numerose proprietà Nullable <T> che desidero essere serializzabili in XML come attributi. Questo è apparentemente un no-no in quanto sono considerati "tipi complessi". Così, invece a implementare il modello * specificato, dove creo un'aggiunta * Valore e * proprietà specificato come segue:XmlSerializer e attributi nullable
[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; } }
che funziona bene - se la proprietà della 'Age' ha un valore, esso viene serializzato come attributo. Se non ha un valore, non è serializzato.
Il problema è che, come ho già detto, ho un sacco di Nullable nella mia classe e questo schema sta solo rendendo le cose disordinate e ingestibili.
Spero ci sia un modo per rendere Nullable più compatibile con XmlSerializer. Oppure, in mancanza, un modo per creare un sostituto Nullable che è.
Qualcuno ha qualche idea su come potrei farlo?
Grazie.
Immagino che questo dovrà fare - sarebbe bello poter dire a un tipo 'complesso' di serializzare come attributo. – Barg