2014-10-06 2 views
1

우리가 두 개의 클래스 애플, 파인애플.NET의 XMLSERIALIZE, 클래스 속성

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

이 가정 무시 그리고 우리는 추상 클래스는 과일

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

라는 이름의이 그리고 우리는 클래스라는 이름의 메뉴가

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

유형이 파인애플 인 경우 과일 속성을 무시하고 싶습니다.

답변

1

당신이 그렇게 할 것입니다,하지만 당신이 그것을 달성하기 위해 ShouldSerialize<PropertyName> 패턴을 사용할 수있는 이유는 확실하지 : 나는 깨끗한 XML을 outpot를 생성 할 필요가

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

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

} 
+0

을, 그리고 과일 중 하나는 실제로 "열매"를 나타냅니다 없다 . 고마워요! –