KnownNetowrks オブジェクトをバイナリ形式にシリアル化する関数があります。
const string FileNameBin = @".\knownnetworks.bin";
public static void SaveNetworksBin(KnownNetworks networks)
{
Stream FileStream = File.Create(FileNameBin);
BinaryFormatter serializer = new BinaryFormatter();
serializer.Serialize(FileStream, networks);
FileStream.Close();
}
KnownNetwork の構造は次のとおりです。
[Serializable]
public class KnownNetworks
{
public static LinkedList<Network> List { get; private set; }
public KnownNetworks()
{
if (List == null)
List = new LinkedList<Network>();
}
...
}
また、クラス Network も[Serializable]
です。
ただし、関数を呼び出すと、パラメータにいっぱいまたはいっぱいでないというリストがあるSaveNetworksBin
場合でも、サイズが 129 バイトのファイルが常に保存されます。networks
そのため、LoadNetworksBin
うまくいかないと思います(あまりにも)。
public static KnownNetworks LoadNetworksBin()
{
var result = new KnownNetworks();
if (File.Exists(FileNameBin))
{
Stream FileStream = File.OpenRead(FileNameBin);
BinaryFormatter deserializer = new BinaryFormatter();
result = (KnownNetworks)deserializer.Deserialize(FileStream);
FileStream.Close();
}
return result;
}
どうしたの?何を変更すればよいですか?