• (转)不通过web.config在运行时注册httpmodules


    https://blog.csdn.net/kufeiyun/article/details/7763070

    在asp.net4 中,我们知道可以不用任何配置让一个方法在appdomain中尽早执行,在上篇文章中已经实现,非常简单,只用定义一个class:

     
     
     
    public class PreApplicationStartCode {
    public static void Start() {
        // Your startup code here
    }
    }

    然后添加一个程序集级别属性指向它:

     
    [assembly: PreApplicationStartMethod(typeof(PreApplicationStartCode),"Start")]
    随着MVC3和asp.net web pages的发布,还有另外一个不用配置文件而是程序动态注册HttpModule的好方法:RegisterModule()API,可悲的是,这个方法隐藏太深,很少用到并且也很难发现(这个API下个版本有可能会被清除掉)

    结合两种技术,就可以随心所欲的动态注册module了

     
     
     
    public class PreApplicationStartCode {
    public static void Start() {
        // Register our module
        Microsoft.Web.Infrastructure.DynamicModuleHelper.DynamicModuleUtility.RegisterModule(typeof(MyModule));
    }
    }

    呵呵,是不是藏得很深啊

    传入的参数类型就是标准的IHttpModule,例如

     
     
    class MyModule : IHttpModule {
    public void Init(HttpApplication context) {
        context.BeginRequest += (sender, e) => {
            var response = ((HttpApplication)sender).Response;
            response.Write("MyModule.BeginRequest");
        };
    }
      
    public void Dispose() { }
    }

    这个方法的优点就是:你可以创建一个封装好的程序集,编译好后把放到一个web app的bin文件夹下,自动完成注册

    部分信任环境下也可很好的工作

    代码可以从此下载  代码  或者 代码.

  • 相关阅读:
    18.06.30 POJ 2488:A Knight's Journey
    18.06.27 POJ 3414:Pots
    18.06.27 15年期末Stupid cat & Doge
    18.06.27 水题整理(3)--1st 上机
    18.6.27 水题整理(2)--2nd 上机
    18.6.27 一些没放上来的水题整理(1)--3rd 上机
    18.06.27 POJ NOI 7217猴子吃桃
    18.06.27 POJ NOI 4977怪盗基德的滑翔翼
    18.06.27 POJ百练 4124海贼王之伟大航路
    18.06.27 POJ1054 The Troublesome Frog
  • 原文地址:https://www.cnblogs.com/spymaster/p/9656370.html
Copyright © 2020-2023  润新知