リフレクションを介して次のクラスのインスタンスを構築しようとしています。
public class Abc
{
private int _a;
public Abc(int a)
{
_a = a;
}
public void Show()
{
MessageBox.Show(_a.ToString());
}
}
次のスニペットを使用してクラスのコンストラクターを取得していますが、コードが到達すると「オブジェクト参照がオブジェクトのインスタンスに設定されていません」 ConstructorInfo csInfo = typa.GetConstructor(types);
という例外が発生します。msdnを確認したところ、このような例外は次の場合に発生することがわかりました。の要素のType[] types
はnullです。デバッグしたところ、すべての要素に有効な値があることがわかりました。実際の問題を見つけるのを手伝ってくれませんか。
Assembly ass = Assembly.GetExecutingAssembly();
Type typa = ass.GetType("Abc");
Type[] types = new Type[1];
types[0] = typeof(int);
ConstructorInfo csInfo =typa.GetConstructor(types);
object [] obj = { 10 };
var AbcObj = csInfo.Invoke(obj) as Abc;
AbcObj.Show();
ありがとう