メソッドControl
をオーバーライドするカスタムがあります。OnInit
アップデート
Init
イベントを通過する必要があるようですuserControl.GetType().GetEvent("Init")
。ただし、RaiseMethod
イベントのプロパティは、リフレクションを通じてイベントを発生させることnull
ができないためです。リードはありますか?
年
次のコードを使用してコントロールを読み込みます (ReflectionUtil
リフレクションを使用してメソッドを呼び出します)。
Page p = new Page();
UserControl userControl = (UserControl)p.LoadControl(path);
p.Controls.Add((Control)userControl);
//EventArgs eventArgs = new EventArgs();
//ReflectionUtil.CallMethod((object)p, "OnInit", (object[])new EventArgs[1] { eventArgs });
//ReflectionUtil.CallMethod((object)userControl, "OnInit", (object[])new EventArgs[1] { eventArgs });
//Plain Reflection doesn't work either...
EventArgs eventArgs = new EventArgs();
MethodInfo initMethod = userControl.GetType().GetMethod("OnInit");
initMethod.Invoke(userControl, (object[])new EventArgs[1]
{
eventArgs
});
ただし、カスタム コントロールのOnInit
メソッドにブレークポイントを設定しても、呼び出されません。ここで何か不足していますか?どんな助けでも大歓迎です。