当前位置:  开发笔记 > 编程语言 > 正文

反序列化通用列表返回null

如何解决《反序列化通用列表返回null》经验,为你挑选了1个好方法。

我正在/如此序列化一个对象:

public class myClass : ISerializable
{
  public List value;

  public myClass(SerializationInfo info, StreamingContext context)
  {
    this.value = (List)info.GetValue("value", typeof(List));
  }

  void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
  {
    info.AddValue("value", value, typeof(List));
  }
}

列表的对象具有Seri​​alizable属性.序列化时,不会抛出任何错误,列表永远不会为空,但是当反序列化我的所有列表都为空时,我不知道为什么.

我将此标记为CQ的回答.我能够生成一个小的测试应用程序,它正确地使用我正在尝试使用的对象进行序列化/反序列化但我仍然无法让它在我的生产代码中工作,但我怀疑它是小的我我失踪了.



1> Joel in Gö..:

当你说你的列表为null时,你的意思是列表本身是null,还是填充为null entires?如果是后者,那么这是一个已知的.Net问题:请看我对同一问题的疑问.

基本上,Lists只在被去序列化时才被初始化; 它们包含的对象仅在反序列化对象图后进行反序列化.解决这个问题的一种方法是在方法中放置任何需要它们的代码OnDeserialized,或者在方法中放置一个代码[OnDeserializedAttribute].请参阅MSDN.

推荐阅读
135369一生真爱_890
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有