zoukankan      html  css  js  c++  java
  • 在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,有兴趣可以去看源码。

    披荆斩棘,朝自己的信仰!Go on
  • 相关阅读:
    Oracle用户管理
    Oracle基本使用
    Oracle 11g安装、卸载
    Oracle
    C#面向对象
    看看Google用户体验十大设计原则
    [转]Delphi 常用控件之TlistView总结
    github + hexo 搭建博客
    CSS3 filter属性学习
    border-box——一种改变盒子尺寸的方法
  • 原文地址:https://www.cnblogs.com/lyk831216/p/2124181.html
Copyright © 2011-2022 走看看