.NET XMLSERIALIZE,忽略类属性

问题描述:

假设我们有两个类苹果,菠萝.NET XMLSERIALIZE,忽略类属性

public class Apple:Fruit{} 
public class Pineapple: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时忽略水果属性。

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

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

    public bool ShouldSerializefruit() 
    { 
     return !(fruit is Pineapple); 
    } 

} 
+0

我需要生产清洁XML outpot和水果的人真正代表“无果” 。感谢它的工作! – 2014-10-06 10:44:45