可以說,我們從基類「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