0

我正在从事一个涉及一些自制(反)序列化代码的项目,并且在反序列化列表时遇到了一些问题。以下代码在第二行抛出 NullReferenceException,即使 varlist不为空,并且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");

任何帮助将非常感激 :)

4

2 回答 2

2

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

于 2009-02-24T22:20:00.240 回答
0

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

于 2009-02-24T22:18:30.320 回答