N
Nikola Novak
Hello,
I'm trying to serialize an array of System.Drawing.Color objects and so far
I've had no luck.
Here are the relevant parts of my code:
public partial class fMain : Form
{
// ...
private Color[] ColorOrder = new Color[] { Color.Blue, Color.Red, Color.Pink, Color.Green, Color.Gray };
// ...
public fMain()
{
// ...
DeserializeColorOrder();
}
// ...
private void fMain_FormClosing(object sender, FormClosingEventArgs e)
{
// ...
SerializeColorOrder();
}
// ...
private void SerializeColorOrder()
{
FileStream swColorOrder = new FileStream("colororder.dat", FileMode.Create);
BinaryFormatter bfColorOrderSer = new BinaryFormatter();
try
{
bfColorOrderSer.Serialize(swColorOrder, ColorOrder);
}
catch (SerializationException)
{
MessageBox.Show("Error");
}
swColorOrder.Close();
}
private void DeserializeColorOrder()
{
FileStream srColorOrder = new FileStream("colororder.dat", FileMode.OpenOrCreate);
try
{
BinaryFormatter bfColorOrder = new BinaryFormatter();
ColorOrder = (Color[])bfColorOrder.Deserialize(srColorOrder);
}
catch (SystemException)
{
ColorOrder = new Color[] { Color.Blue, Color.Red, Color.Pink, Color.Green, Color.Gray };
}
finally
{
srColorOrder.Close();
}
}
}
What happens is that nothing is serialized. File "colororder.dat" is
created upon exiting the application, but it is empty. The FormClosing
event is executed as expected (tried it under debug), but nothing is
written in the file.
What am I doing wrong?
Thanks,
Nikola
I'm trying to serialize an array of System.Drawing.Color objects and so far
I've had no luck.
Here are the relevant parts of my code:
public partial class fMain : Form
{
// ...
private Color[] ColorOrder = new Color[] { Color.Blue, Color.Red, Color.Pink, Color.Green, Color.Gray };
// ...
public fMain()
{
// ...
DeserializeColorOrder();
}
// ...
private void fMain_FormClosing(object sender, FormClosingEventArgs e)
{
// ...
SerializeColorOrder();
}
// ...
private void SerializeColorOrder()
{
FileStream swColorOrder = new FileStream("colororder.dat", FileMode.Create);
BinaryFormatter bfColorOrderSer = new BinaryFormatter();
try
{
bfColorOrderSer.Serialize(swColorOrder, ColorOrder);
}
catch (SerializationException)
{
MessageBox.Show("Error");
}
swColorOrder.Close();
}
private void DeserializeColorOrder()
{
FileStream srColorOrder = new FileStream("colororder.dat", FileMode.OpenOrCreate);
try
{
BinaryFormatter bfColorOrder = new BinaryFormatter();
ColorOrder = (Color[])bfColorOrder.Deserialize(srColorOrder);
}
catch (SystemException)
{
ColorOrder = new Color[] { Color.Blue, Color.Red, Color.Pink, Color.Green, Color.Gray };
}
finally
{
srColorOrder.Close();
}
}
}
What happens is that nothing is serialized. File "colororder.dat" is
created upon exiting the application, but it is empty. The FormClosing
event is executed as expected (tried it under debug), but nothing is
written in the file.
What am I doing wrong?
Thanks,
Nikola