using
System.IO;
using
System.Diagnostics;
using
System.Runtime.Serialization;
using
System.Runtime.Serialization.Formatters;
using
System.Runtime.Serialization.Formatters.Binary;
[Serializable]
public
class
MySettings
{
public
int
screenDx;
public
ArrayList recentlyOpenedFiles;
[NonSerialized]public
string dummy;
}
public
class
Settings
{
const
int
VERSION
=
1;
static
void Save(MySettings
settings, string
fileName) {
Stream
stream
=
null;
try
{
IFormatter formatter
=
new BinaryFormatter();
stream
=
new FileStream(fileName,
FileMode.Create,
FileAccess.Write,
FileShare.None);
formatter.Serialize(stream,
VERSION);
formatter.Serialize(stream,
settings);
}
catch {
//
do nothing,
just ignore any
possible errors
}
finally {
if
(null
!=
stream)
stream.Close();
}
}
static
MySettings Load(string
fileNmae) {
Stream
stream
=
null;
MySettings
settings
=
null;
try
{
IFormatter
formatter
=
new BinaryFormatter();
stream
=
new FileStream(fileName,
FileMode.Open,
FileAccess.Read,
FileShare.None);
int
version
=
(ArrayList)formatter.Deserialize(stream);
Debug.Assert(version
==
VERSION);
settings
=
(MySettings)formatter.Deserialize(stream);
}
catch {
//
do nothing,
just ignore any
possible errors
}
finally
{
if
(null
!=
stream)
stream.Close();
}
return
settings;
}
}