我有一个 asp.net 网页。这是实现页面的类:
public partial class _Default : System.Web.UI.Page
{
private readonly string delegateName = "DynamicHandler";
protected void Page_Load(object sender, EventArgs e)
{
EventInfo evClick = btnTest.GetType().GetEvent("Click");
Type tDelegate = evClick.EventHandlerType;
MethodInfo method = this.GetType().GetMethod("DynamicHandler",
BindingFlags.NonPublic | BindingFlags.Instance);
Delegate d = Delegate.CreateDelegate(tDelegate, this, method);
MethodInfo addHandler = evClick.GetAddMethod();
Object[] addHandlerArgs = { d };
addHandler.Invoke(btnTest, addHandlerArgs);
}
private void DynamicHandler(object sender, EventArgs e)
{
throw new NotImplementedException();
}
}
我正在尝试动态连接事件处理程序。由于某种原因method
仍然为空,我不知道为什么。我以前做过很多次,但我不知道我错过了什么。
编辑:我发现this.GetType()
返回页面的类型ASP.default_aspx
而不是实现页面的实际类型。我真的不知道如何解决这个问题......