.net XmlSerialize,忽略类属性

本文关键字:属性 XmlSerialize net | 更新日期: 2023-09-27 18:25:37

假设我们有两个类Apple,Pineapple

public class Apple:Fruit{}
public class Pineapple:Fruit{}

我们有一个名为Fruit 的抽象类

[XmlInclude(typeof(Apple))]
[XmlInclude(typeof(Pineapple))]
public abstract class Fruit{}

我们有一个名为Menu 的类

public class Menu 
{
    [XmlElement("apple",typeof(Apple))]
    [XmlElement("",typeof(Pineapple))]
    public Fruit fruit {get;set;}
}

当类型为菠萝时,我希望忽略水果属性。

.net XmlSerialize,忽略类属性

不确定为什么要这样做,但可以使用ShouldSerialize<PropertyName>模式来实现:

public class Menu 
{
    [XmlElement("apple",typeof(Apple))]
    public Fruit fruit {get;set;}
    public bool ShouldSerializefruit()
    {
        return !(fruit is Pineapple);
    }
}