- Создание модуля HTTP в методе
Init
в методе Global.asax
- Вызов
Module.Init(
), как описано здесь - В методе
Init
вашего модуля, перехватите необходимые обработчики событий. - Переопределите метод
Dispose
в обработчике и отцепите обработчики событий. Предоставьте экземпляр как открытое свойство на global.asax
, чтобыможет вызвать Dispose
, если вы хотите отменить регистрацию модуля
// Global.asax
public IHttpModule MyModuleInstance {get;приватный набор;}
public override void Init()
{
base.Init();
MyModuleInstance = new MyModule();
MyModuleInstance.Init(this);
}
// MyModule.cs
public void Dispose()
{
_context.BeginRequest -= context_BeginRequest;
}
public void Init(HttpApplication context)
{
_context = context;
context.BeginRequest += context_BeginRequest;
}
private void context_BeginRequest(object sender, EventArgs e)
{
HttpApplication app = sender as HttpApplication;
app.Context.Response.Write("Hello from OnBeginRequest in custom module.<br>");
}
// ДЛЯ отмены регистрации
protected void Button1_Click(object sender, EventArgs e)
{
this.ApplicationInstance.MyModuleInstance.Dispose();
}