のXmlSerializerがクラス属性を無視属性を無視します。私は、単純なシリアライザを書いている、と私はまた、私は[XmlRoot]
と[XmlIgnore]
を使用しようとしました、[Serializable]
と[NonSerialized]
属性を使用していました。フィールドは、それがシリアライズされる属性[NonSerialized]
を有しているが、私は、気づきました。のXmlSerializerは
そしてそれはまた、このような[XmAtribute]
などの他の属性を無視します。次に、どのように私はいくつかのフィールドを無視することができ、私はそれが任意の属性を使用する必要もないということに気づいた、と私は、これらの属性なしでクラスをシリアル化することができますか?
私のクラス:
[Serializable]
public class Route
{
int busNumber;
string busType, destination;
DateTime departure, arrival;
[NonSerialized]DateTime creationDate;
...
}
そして、私はシリアライザをオーバーライドしてみList<Route>
private void saveToolStripMenuItem_Click(object sender, EventArgs e)
{
Stream stream = File.OpenWrite(Environment.CurrentDirectory + "\\routes.xml");
XmlSerializer xmlSer = new XmlSerializer(typeof(List<Route>));
xmlSer.Serialize(stream, ((FileForm)ActiveMdiChild).routes);
stream.Close();
}
チェックこの単純なネットフィドル:https://dotnetfiddle.net/ljPoyJ – Piou