次の行で文字列パラメーター (名前) を渡したいと思います。それ、どうやったら出来るの?
string name = "First Name";
//How do I pass "First Name" in the function?
tempControl.GetType().GetMethod("LoadAnswers").Invoke(tempControl, null);
Invoke
メソッドに引数のオブジェクト配列を渡す必要があります。
tempControl.GetType().GetMethod("LoadAnswers").Invoke(tempControl, new object[] { name });
しかし...オブジェクトのメソッドを呼び出すだけではない理由について、私は混乱していtempControl
ます:
tempControl.LoadAnswers(name);
??
編集
コメントで@Jason Pが述べたように、コントロールを正しいタイプにキャストすると(引数のためにMyUserControl
)、リフレクションを使用せずにメソッドにアクセスできます。これは、はるかに読みやすく、パフォーマンスの高いソリューションになります。
var myControl = (MyUserControl)tempControl;
myControl.LoadAnswers(name);