我有这个函数可以将 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>();
}
...
}
而类网也是[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;
}
怎么了?我应该改变什么?