2009-02-24 80 views
0

我正在研究一个涉及一些自制的(de-)序列化代码的项目,并且遇到了一些列表反序列化的问题。以下代码在第二行抛出NullReferenceException,即使该变量list不为空,并且在将鼠标悬停在其上时愉快地报告Count = 0为什么我得到这个NullReferenceException?

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

Bah,我讨厌刚刚找到答案后,我问了一个关于它的问题。事实证明,List<T>不喜欢使用GetUninitializedObject进行实例化,所以我不得不为List使用Activator.CreateInstance(对大多数类不适用)添加特殊情况。

0

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