2012-05-18 3 views
0

У меня есть базовый класс, из которого наследуется ряд других классов. Базовый класс поддерживает сериализацию XML и имеет свойство, которое сериализуется.Как сохранить унаследованное свойство дочернего класса от сериализации

Я хотел бы сохранить это же свойство из сериализации в одном из дочерних классов. Это возможно? Как мне это сделать?

Благодаря

Тони

+0

только в одном дочернем классе и насчет других классов детей? –

+0

Только в одном классе ребенка, по крайней мере, в это время. Я хочу, чтобы он был сериализован в других. –

ответ

2

Вы можете использовать XmlIgnoreAttribute. См. Эту статью.

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlattributes.xmlignore.aspx

+0

Свойство определено в базовом классе, где я хочу, чтобы он был сериализован в обычном режиме. Я не могу украсить его «XmlIgnoreAttribute» там. –

+0

Вы можете установить XMLIgnoreAttribute в базовом классе и затем выборочно переопределить их в производных классах. В этой статье описываются переопределения атрибутов сериализации XML. http://ianpicknell.blogspot.com/2010/05/selectively-overriding-xml.html –

1

Украсить свойство, которое вы хотите скрыть с помощью атрибута [XmlIgnore]:

[Serializable] 
[XmlRoot(ElementName = "Customer")] 
public class SimplifiedCustomer 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    [XmlIgnore] 
    public long CustomerId { get; set; } 
}