可以说,我们从基类“System.Windows.Controls一derivided类“SerializableLabel”。.NET XmlSerializer的,忽略基类的属性
[XmlRoot("SerializableLabel")]
public class SerializableLabel : Label
{
public string foo = "bar";
}
我想这个序列化类,但都不理。在父类中的属性理想的XML看起来像:
<SerializableLable>
<foo>bar</foo>
</SerializableLable>
这是如何最好地实现
我第一次尝试使用了典型的XmlSerializer的方法:
XmlSerializer s = new XmlSerializer(typeof(SerializableLabel));
TextWriter w = new StreamWriter("test.xml");
s.Serialize(w, lbl);
w.Close();
但由于串行试图序列基类属性,它是一个接口(ICommand的命令),这引发了一个异常。
感谢您的回答! 这看起来好像我违反了Liskov替代原则。也许这是因为我对于忽视基类中的属性而相当热心。事实是,我只想忽略阻止标签序列化的属性 - 例如那些类型为接口的属性。 – ccunni 2009-07-07 16:58:21