在ASP.NET中运行代码的绝对最早的地方的执行顺序
有许多地方可以在ASP.NET中执行初始化代码:
>处理web.config 这些事件的排序是什么?是否还有其他附加项目应该列入此列表? 编辑:由于有人提到静态与第一个调用位置相关,我将为它们打破这个问题 WebActivator PreApplicationStartMethod中使用的Foo类 >静态构造函数 WebActivator PostApplicationStartMethod中使用的Bar类 >静态构造函数 在Global.asax Application_Start中使用的Baz类 >静态构造函数 为清楚起见,假设在上面的例子中,每个例子都依赖于在该位置使用的Foo / Bar / Baz类,并且该类包含静态构造函数和静态只读字段. 解决方法
静态构造函数和静态字段初始化由运行时确定,而不是ASP.NET. Eric Lippert最近发布了一篇精彩的
four–
part
blog
series,详细介绍了它们的工作原理.
至于你提到的其他项目,首先执行标有 根据Phil Haack的a blog post,该属性使开发人员有机会在应用程序启动期间调用另外两种方法: WebActivator使用框架的PreApplicationStartMethodAttribute挂钩到应用程序的启动.一旦被调用,它将搜索并执行WebActivator.PreApplicationStartMethodAttribute标记的所有方法,然后动态注册an HttpModule,稍后将调用PostApplicationStartMethodAttribute标记的所有方法 – 在HttpApplication类中调用Application_Start之后. 总而言之,订单是: > Web.config被读入内存>使用PreApplicationStartMethodAttribute标记的方法> HttpApplication.Application_Start>使用WebActivator.PostApplicationStartMethodAttribute标记的方法 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net – 加密cookie中的会话ID(或其他身份验证值)是否有
- ASP.NET自动完成DropDownList
- asp.net – 什么时候以明文形式存储密码是个好主意?
- asp.net-mvc – 如何渲染部分视图到字符串
- 如何修复ASP.NET错误“文件’nnn.aspx’没有预编译,不能被请
- asp.net – 运行示例应用程序时出错,Uncaught Error:Signa
- asp.net – 看起来像链接的按钮
- asp.net – MVC2 – 使用RDF和命名空间使用RSS源http://www
- entity-framework – 如何使用EF更新控制器中的对象?
- 有没有人对ASP.NET WebFormsMVP有所了解?