在Asp.net 4.0 中动态注册HttpModule

动态注册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,有兴趣可以去看源码。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值