0

私はいくつかの自家製の (逆) シリアル化コードを含むプロジェクトに取り組んでおり、リストの逆シリアル化でいくつかの問題に遭遇しました。次のコードは、var が null ではないにもかかわらず、2 行目に NullReferenceException をスローしており、マウスをその上に置くlistと喜んで報告します。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ため、リストが Activator.CreateInstance を使用する特別なケースを追加する必要がありました (これはほとんどのクラスのオプションではありません)。

于 2009-02-24T22:20:00.240 に答える
0

val適切にインスタンス化されていますか? それがここで問題であると私が見ることができる唯一のことですが、言うのは難しいです.

于 2009-02-24T22:18:30.320 に答える