3

在 Application_Start 和 Application_Endrequest 中连接和运行一些代码而不必每次都将代码放在 MvcApplication 类中的首选方法是什么?

也许有一个事件、一个属性或我可以在 asp.net 4 中连接的东西?

4

2 回答 2

3

HttpApplication 类上有很多事件。但是,您仍然需要一些可以引导事件连接的东西。

你可以看看PreApplicationStartAttribute。它允许您在应用程序编译之前连接代码以运行(尽管应用程序实例不会那么早可用)。

David Ebbo 还创建了一个名为WebActivator的类似系统。

于 2010-11-16T22:30:24.557 回答
2

这不是一个正确的说法,即“让您在应用程序编译之前连接代码以运行。

您创建的 WebActivator 类实际上会编译到程序集中,但允许您在运行时挂钩 3 个事件:

1.) PreApplicationStartMethod 2.) PostApplicationSTartMethod 3.) ApplicationShutdownMethod

来自 David Ebbo 的描述:

“WebActivator 是一个 NuGet 包,它允许其他包轻松地将启动和关闭代码引入 Web 应用程序。这提供了一个比必须使用许多包中的启动逻辑修改 global.asax 更简洁的解决方案。”

使用 WebActivator 不仅限于其他包的启动代码,它还可以用于您的应用程序的启动代码(引导)。

例如,我在最近使用 MVC3 完成的一个项目中使用它来设置和配置我的 Unity 依赖项、我的 Combres 设置和我的 51DegreesMobi 设置。它允许我为每一个都拥有一个单独的类文件,而不会在 Global.asax 中弄乱或输入一行代码。

它也是 .NET 4 PreApplicationStartMethod 更好的替代方案,因为您可以拥有许多具有 WebActivator.PreStartupMethod 的类,并且它们都将在 App-Start 之前运行,而不是我相信您的 .NET 4 属性'只允许使用一次。

于 2012-01-27T19:21:32.167 回答