0

リフレクションによって作成されたオブジェクトを汎用リストに追加する必要があります。コンパイル時には、このオブジェクトの正確な型やジェネリック リストの型はわかりませんが、型が一致することは確認できます。

同様の問題について話している多くの投稿を見つけましたが、それらは一般的なリストを必要としないか、コンパイル時にタイプがわかっています。

誰でも助けることができますか?

4

2 に答える 2

2

あなたlの一般的なリストであり、oあなたのオブジェクトである場合:

l.GetType().GetMethod("Add").Invoke(l, new object[] { o });

jgauffinの提案に従って、次のテストを実行して、オブジェクトをリストに追加できることを確認できます。

if (l.GetType().GetGenericArguments()[0].IsAssignableFrom(o.GetType()))
{
    l.GetType().GetMethod("Add").Invoke(l, new object[] { o });
}
于 2013-03-17T11:09:37.557 に答える
0

SomeObject.GetType() を使用してその型を取得します。

  MyClass t1 = new MyClass();
  Type t = t1.GetType();
于 2013-03-17T11:08:59.590 に答える