首页  ·  知识 ·  云计算
在Asp.net4.0中动态注册HttpModule
网友     综合  编辑:dezai   图片来源:网络
动态注册HttpModule使我们使用自定义的HttpModel时候不在需在配置文件里配置HttpModel,

动态注册HttpModule使我们使用自定义的HttpModel时候不在需在配置文件里配置HttpModel,避免过多的配置出错情况。让我们来看看如何实现动态注册HttpModule.

 

First,我们实现自定义的HttpModel
 

public class CustomModule : IHttpModule
{
public void Dispose()
{
//nothing to do here
}

public void Init(HttpApplication context)
{
context.BeginRequest
+= (sender, e) => ProcessCookie((HttpApplication)sender);
}
}
}


 

Second,建立一个静态类,并命名为PreApplicationStartCode,并增加一个静态方法PreStart()
 

 

public class PreApplicationStartCode
{
private static bool _isStarting;

public static void PreStart()
{
if (!_isStarting)
{
_isStarting
= true;

//注意这里的动态注册,此静态方法在Microsoft.Web.Infrastructure.DynamicModuleHelper
DynamicModuleUtility.RegisterModule(typeof(CustomModule));
}
}
}

Note.这里的类名官方里面建议用PreApplicationStartCode,我没测试过,大家可以测试下用其他类名
 

 

Three,在Properties/AssemblyInfo.cs里面注册
 

[assembly: PreApplicationStartMethod(typeof(MyTest.PreApplicationStartCode), "PreStart")]

 

通过这三步,你的HttpModule就不在需要为每个应用程序去配置了,这种方式比较适合开发组件DLL的时候,需要注册HttpModule的情况,微软的Asp.net MVC3里都是使用的动态HttpModule,有兴趣可以去看源码。
 

 

本文作者:网友 来源:网络
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读