我有一個類,其中有很多可空屬性,我想將其作爲屬性序列化爲XML。這顯然是一個「不」,因爲它們被認爲是「複雜類型」。所以,相反我實現*指定的模式,我在那裏建立一個除*值和*指定屬性如下:XmlSerializer和可空屬性
[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替代品。
有沒有人有任何想法我可以做到這一點?
謝謝。
我想這將不得不做 - 它能很好地告訴一個'複雜'類型作爲一個屬性序列化。 – Barg 2010-07-15 14:03:17