P
Paul E Collins
I'm using XmlSerializer to write objects of my own class to disk. I'd prefer
to do this from inside the class, so that I can just write
Settings.Load(...) and Settings.Save(...).
The code I tried is below. However, the Load method fails because the 'this'
object is read-only.
Is there a simple way for an object to deserialise itself, or am I better
off doing it from outside the class?
public void Save(string strFilename)
{
XmlSerializer x = new XmlSerializer(typeof(MyObject));
using (TextWriter writer = new StreamWriter(strFilename))
{
x.Serialize(writer, settings);
writer.Close();
}
}
public void Load(string strFilename)
{
XmlSerializer x = new XmlSerializer(typeof(MyObject));
using (TextReader reader = new StreamReader(strFilename))
{
this = (MyObject) x.Deserialize(reader);
reader.Close();
}
}
P.
to do this from inside the class, so that I can just write
Settings.Load(...) and Settings.Save(...).
The code I tried is below. However, the Load method fails because the 'this'
object is read-only.
Is there a simple way for an object to deserialise itself, or am I better
off doing it from outside the class?
public void Save(string strFilename)
{
XmlSerializer x = new XmlSerializer(typeof(MyObject));
using (TextWriter writer = new StreamWriter(strFilename))
{
x.Serialize(writer, settings);
writer.Close();
}
}
public void Load(string strFilename)
{
XmlSerializer x = new XmlSerializer(typeof(MyObject));
using (TextReader reader = new StreamReader(strFilename))
{
this = (MyObject) x.Deserialize(reader);
reader.Close();
}
}
P.