为什么我得到这个NullReferenceException?

时间:2009-02-24 22:15:14

标签: c# serialization nullreferenceexception

我正在开发一个涉及一些自制(反)序列化代码的项目,我遇到了一些关于反序列化List的问题。下面的代码在第二行抛出NullReferenceException,即使var list不为null,并且在将鼠标悬停在它上面时会愉快地报告Count = 0

System.Collections.IList list = ((System.Collections.IList)obj);
list.Add(val);

我的变量实例化有点奇怪,所以也许这与它有关?这是涉及的代码。

System.Runtime.Serialization.FormatterServices.GetUninitializedObject(type);

type

的位置
System.Type.GetType("System.Collections.Generic.List`1[[Networking.Client, Networking, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]], mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");

非常感谢任何帮助:)

2 个答案:

答案 0 :(得分:2)

Bah,我讨厌在我提出问题之后找到答案。事实证明List<T>不喜欢使用GetUninitializedObject进行实例化,所以我不得不为Lists添加一个特殊情况来使用Activator.CreateInstance(这对大多数类来说都不是一个选项)。

答案 1 :(得分:0)

您的val是否已正确实例化?这是我唯一能看到的问题,但很难说。