public void SerializeObject(string filename, StartParameter objectToSerialize) { using(Stream stream = File.Open(filename, FileMode.OpenOrCreate, FileAccess.Write, FileShare.ReadWrite)) { BinaryFormatter bFormatter = new BinaryFormatter(); bFormatter.Serialize(stream, objectToSerialize); stream.Close(); } }
/// <summary> /// Serialise the current config into a file to be used for the next start /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void MainForm_FormClosing(object sender, FormClosingEventArgs e) { try { if(slave != null) slave.Dispose(); if(tcpListener != null) tcpListener.Stop(); StartParameter s = new StartParameter(regValues, (byte)UnitIdBox.Value, (int)PortBox.Value, address); if(!File.Exists(InitValuesFileName)) { File.Create(InitValuesFileName); } SerializeObject(InitValuesFileName, s); } catch(Exception ex) { MessageBox.Show(ex.Message); log.Error("Error writing start parameters", ex); } }