.net XmlSerialize, игнорировать свойства класса

1

Предполагая, что у нас есть два класса: Apple, Pineapple

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

И у нас есть абстрактный класс с именем 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;}
}

Я хотел бы игнорировать свойство фруктов, когда тип - ананас.

Теги:
xmlserializer
xml-serialization

1 ответ

1
Лучший ответ

Не знаете, почему вы хотели бы это сделать, но вы можете использовать шаблон ShouldSerialize<PropertyName> для его достижения:

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

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

}
  • 0
    Мне нужно произвести чистый xml outpot, и один из фруктов на самом деле представляет «нет фруктов». Спасибо, это сработало!

Ещё вопросы

Сообщество Overcoder
Наверх
Меню