.net XmlSerializer, ignorieren Sie die Eigenschaften der Basisklasse
Nehmen wir an, wir haben eine abgeleitete Klasse "SerializableLabel" von der Basisklasse "System.Windows.Controls".
[XmlRoot("SerializableLabel")]
public class SerializableLabel : Label
{
public string foo = "bar";
}
Ich möchte diese Klasse serialisieren, aber ALLE Eigenschaften in der übergeordneten Klasse ignorieren. Im Idealfall würde die XML so aussehen:
<SerializableLable>
<foo>bar</foo>
</SerializableLable>
Wie wird das am besten erreicht?
Mein erster Versuch verwendete den typischen XmlSerializer-Ansatz:
XmlSerializer s = new XmlSerializer(typeof(SerializableLabel));
TextWriter w = new StreamWriter("test.xml");
s.Serialize(w, lbl);
w.Close();
Dies löst jedoch eine Ausnahme aus, da das Serialisierungsprogramm versucht, eine Basisklasseneigenschaft zu serialisieren, bei der es sich um eine Schnittstelle handelt (ICommand-Befehl).