0

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;
}

どうしたの?何を変更すればよいですか?

4

1 に答える 1