如何扩展XmlAttribute行为?

如何扩展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中的东西。

如何实现它?

链接地址: http://www.djcxy.com/p/65139.html

上一篇: How to extend XmlAttribute Behavior?

下一篇: XmlSerializer and nullable attributes