ASP.NET 4.0新增的初始化方法
为了让一些类库能自动执行一些初始化,ASP.NET提供了一种新方法,允许为程序集指定一个PreApplicationStartMethodAttribute
为了演示这种用法,我将前面的示例(VS2008开发)移到一个类库中(用VS2012开发)并设置类库的命名空间为InitClassLibrary1。
然后,我添加了一个调用类:
|
最后,我们可以在InitClassLibrary1类库的AssemblyInfo.cs文件中,增加一个Attribute
|
当然了,你也可以直接像下面设置,免得多创建一个类型出来:
|
这样设置后,再运行网站,你也能发现我们的初始化代码确实运行了:黄页仍然在显示。
各种初始化方法的差别
前面介绍了4种在ASP.NET执行初始化的方法,你或许想知道它们到底有哪些区别呢?
由于它们都能实现初始化的操作,它们的差别也只有执行的时刻不同而已,我们可以用简单的方法区分它们的调用位置:看异常的调用堆栈信息。
AppInitialize方法异常时的调用堆栈信息:
HttpModule异常时的调用堆栈信息: