我有一个与序列化 HashSet类似的问题
我有一个类型为成员的类Dictionary<String,HashSet<T>>
当我用 BinaryFormatter 序列化对象,然后反序列化它时,它出现空。
我不知道如何或在哪里调用此处发布的解决方法。
任何提示?提前致谢。
编辑:我尝试将哈希集转换为列表,正如另一个线程中的评论之一所建议的那样。
该对象如下所示:
public class THashSet : HashSet<T> , ISerializable
{
public THashSet(SerializationInfo info, StreamingContext context)
{
var list = (List<T>)info.GetValue("hashset", typeof(List<T>));
foreach (T t in list)
this.Add(t);
}
public override void GetObjectData(SerializationInfo info,StreamingContext context)
{
info.AddValue("hashset", this.ToList<T>());
}
当包含 THashSet 的对象被反序列化(并调用构造函数)时,列表被正确恢复,正如我在调试器中看到的那样。
但是在序列化器完成后,该对象只包含一个空的哈希集。