【问题标题】:.net XmlSerialize, ignore class properties.net XmlSerialize,忽略类属性
【发布时间】:2014-10-06 17:41:02
【问题描述】:

假设我们有两个类 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;}
}

当类型为 Pineapple 时,我想忽略 fruit 属性。

【问题讨论】:

    标签: c# .net xml-serialization xmlserializer


    【解决方案1】:

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

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

    【讨论】:

    • 我需要生成干净的xml outpot,其中一个水果实际上代表“没有水果”。谢谢它的工作!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-23
    相关资源
    最近更新 更多