热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> .Net编程>>正文内容

在Asp.net 4.0 中动态注册HttpModule

发布时间:2011年08月02日点击数: 佚名

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

 

First,我们实现自定义的HttpModel

  1. public class CustomModule : IHttpModule 
  2.     { 
  3.         public void Dispose() 
  4.         { 
  5.             //nothing to do here 
  6.         } 
  7.  
  8.         public void Init(HttpApplication context) 
  9.         { 
  10.             context.BeginRequest += (sender, e) => ProcessCookie((HttpApplication)sender); 
  11.         } 
  12.     } 
  13. }   

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

  1. public class PreApplicationStartCode 
  2.     private static bool _isStarting; 
  3.  
  4.     public static void PreStart() 
  5.     { 
  6.         if (!_isStarting) 
  7.         { 
  8.             _isStarting = true
  9.  
  10.             //注意这里的动态注册,此静态方法在Microsoft.Web.Infrastructure.DynamicModuleHelper 
  11.             DynamicModuleUtility.RegisterModule(typeof(CustomModule)); 
  12.         } 
  13.     } 

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

 

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

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

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

本站热点业务

更多模板/案例展示

关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作