【问题标题】:XmlSerializer ShouldSerialize* doesn't work for base type propertyXmlSerializer ShouldSerialize* 不适用于基类型属性
【发布时间】:2012-02-20 11:48:12
【问题描述】:

如果我为当前类型属性定义 ShouldSerialize*,它会起作用。但如果我指定基类型属性,它就不起作用。 *Specified 也一样

 [XmlInclude(typeof(SingleEventGroup))]
    [XmlInclude(typeof(MultipleEventsGroup))]
    public abstract class EventsGroup
    {
        public List<int> EventsIds { get; set; }
        public string Name { get; set; }
    }

 public class SingleEventGroup : EventsGroup
    {
        public bool ShouldSerializeName()
        {
            return false; //it is still serialized
        }
    }

【问题讨论】:

    标签: .net serialization xml-serialization


    【解决方案1】:

    XmlSerializer 在您的成员 Name 的 .DeclaringType 上查找方法,而不是在 .ReflectedType 上。这就是它不起作用的原因。

    【讨论】:

    • 看起来如果你在基本类型中将ShouldSerializeName 实现为虚拟然后在继承的类型中覆盖它确实有效。
    • 任何解决方法...如果您无权访问基类?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-11
    • 1970-01-01
    • 2013-07-27
    • 2014-11-09
    • 1970-01-01
    • 2014-10-06
    相关资源
    最近更新 更多