Ich versuche, ein Hashset zu serialisieren, aber ich habe kein Glück. Immer wenn ich versuche, die serialisierten Daten zu öffnen, erhalte ich ein leeres HashSet. Eine Liste funktioniert jedoch problemlos. Beispiel-Code:
[Serializable()]
public class MyClass : ISerializable
{
public MyClass(SerializationInfo info, StreamingContext ctxt)
{
HashSet<string> hashset = (HashSet<string>)info.GetValue("hashset", typeof(HashSet<string>));
List<string> list = (List<string>)info.GetValue("list", typeof(List<string>));
Console.WriteLine("Printing Hashset:");
foreach (string line in hashset)
{
Console.WriteLine(line);
}
Console.WriteLine("Printing List:");
foreach (string line in list)
{
Console.WriteLine(line);
}
}
public void GetObjectData(SerializationInfo info, StreamingContext ctxt)
{
HashSet<string> hashset = new HashSet<string>();
hashset.Add("One");
hashset.Add("Two");
hashset.Add("Three");
info.AddValue("hashset", hashset);
List<string> list = new List<string>();
list.Add("One");
list.Add("Two");
list.Add("Three");
info.AddValue("list", list);
}
}
Und wenn er ausgeführt wird, wird er ausgedruckt:
Printing Hashset:
Printing List:
One
Two
Three
Die Liste funktioniert also gut, aber das HashSet ist leer. Ein wenig stecken - kann jemand sehen, was ich falsch mache? Danke