Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to dispose IHttpModule correctly?

All implementation of IHttpModule I've seen looks following:

class HttpCompressionModule : IHttpModule {   public void Init(HttpApplication application)   {     application.SomeEvent += OnSomeEvent;   }    private void OnSomeEvent(Object source, EventArgs e)   {     // ...   }    public void Dispose()    {     // nothing here !!!   }  } 

I am wondering why is the Dispose method always empty? Shouldn't we unsubscribe the event which we subscribe in the Init method?

like image 577
Jakub Šturc Avatar asked Aug 06 '10 13:08

Jakub Šturc


1 Answers

The lifecycle of an HttpModule is tightly integrated with the lifecycle of an HttpApplication. Instances of HttpModule are generated when the application is started and destroyed when the application is disposed of.

In this case there is no point in unsubscribing from the event because the publisher (HttpApplication) is being disposed of anyway. Of course, in a situation where the publisher wasn't being disposed of, unhooking the event handler would be the right thing to do.

like image 160
Matt B Avatar answered Sep 24 '22 09:09

Matt B