• PreApplicationStartMethod特性说明


    PreApplicationStartMethod主要用于为程序集指定一个方法,在程序集加载时进行一些自定义的初始化处理。

    使用方式如下所示,首先在程序集中定义一个公共类型和一个公共静态的方法

     

    然后我们使用PreApplicationStartMethod属性注册该方法进行程序集的预处理,注意PreApplicationStartMethod只能注册当前程序集中的类型中的方法进行预处理,而且该类型必须为public,改方法必须为public static

     

    接着我们按照上述步骤新建多个相同的项目

    最后我们新建一个空的MVC项目,引用这些类库项目,对程序集进行测试

     

    运行程序,可以看到Class1Class2Class3中的Run方法依次执行

     

     

     

     

     

    Global文件中的事件,如Application_Start会在他们执行完之后执行

     

     

    如上所示,当前Web项目引用了三个类库项目,那么他们各自的预处理代码的执行顺序有什么规律呢?

    查看MSDNPreApplicationStartMethodAttribute类型的说明,可以看到我们无法控制代码的处理顺序,编译预处理代码出,必须保持代码的独立性,使预处理代码的执行顺序不会影响程序的运行。

    另外,如果当前Web项目也存在预处理代码,那么,外部引用的程序集的预处理代码与Web项目中的预处理代码,那个会优先执行呢?

             新建Class4如下所示,并注册Run方法进行预处理

             运行站点,可以看到,Class4中的Run方法会在外部引用的程序集中的预处理程序执行完毕之后执行,Class4.Run执行完毕后才会执行Global文件中的相关事件代码。

             因为预处理的代码会在程序第一次运行,加载程序集的时候执行。所以在MVC5Katana项目中就是使用PreApplicationStartMethod特性进行HttpModule的动态注册的。

  • 相关阅读:
    求Computational problems associated with Racah algebra
    病理情形
    扫描算法求最大子序列的一次简单非严格证明
    分治法求最大子序列,关于复杂度的一次弱推导
    VFP_等待 rar 命令结束
    Windows_解决win7开机画面变成vista画面的方法
    C#_WinForm的等待窗口
    C#_控件的缩写大全
    SQL Server 2008_基本安装说明
    C#_获取 SQL服务器列表
  • 原文地址:https://www.cnblogs.com/mstmdev/p/5471259.html
Copyright © 2020-2023  润新知