如何扩展XmlAttribute行为?

时间:2013-04-24 09:25:58

标签: c# .net xml xml-serialization xml-attribute

如何扩展XmlAttribute类?

使用下面的代码,我将我的可空属性设置为可序列化,如果没有值,则将其从序列化中排除:

 [XmlIgnore]
        public DateTime? LastUpdated { get; set; }

        [XmlAttribute("lastUpdated")]
        public DateTime LastUpdatedSerializable
        {
            get { return this.LastUpdated.Value; }
            set { this.LastUpdated = value; }
        }

        public bool ShouldSerializeLastUpdatedSerializable()
        {
            return LastUpdated.HasValue;
        }

而不是上述,我希望能够使用以下代码来实现相同的结果:

        [XmlAttribute("lastUpdated", IsNullable = true)]
        public DateTime? LastUpdatedSerializable
        {
            get;
            set;
        }

因此,我希望能够扩展XmlAttribute以接受一个名为IsNullable的属性,然后如果值为true,它应该用上面的代码替换实现,这样如果没有值,则排除该节点

微软本应为XmlAttribute真正添加到.NET Framework中。

如何实现它?

0 个答案:

没有答案