Your list is static and therefore don't belong to the KnownNetworks
instance you're serializing.
Why can't I serialize an object to binary format in C#? [duplicate]
-
01-07-2022 - |
Question
I have this function to serialize a KnownNetowrks object to Binary Format:
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 has the following structure:
[Serializable]
public class KnownNetworks
{
public static LinkedList<Network> List { get; private set; }
public KnownNetworks()
{
if (List == null)
List = new LinkedList<Network>();
}
...
}
And class Network is also [Serializable]
.
However, when I call the function SaveNetworksBin
, it always save a file whose size is 129 bytes, even if the parameter networks
has a list that it is more full or less full. So I think for that reason LoadNetworksBin
doesn't work (too).
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;
}
What's wrong? What should I change?
Solution
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow