WebActivator做什么?

Sha*_*ean 48 asp.net-mvc ninject ef-code-first asp.net-mvc-3

在使用NuGet为SQL Server CE添加实体框架代码之后,为我生成了此代码.他们没有对任何其他文件进行任何更改.该文件SQLCEEntityFramework.cs已创建并放在App_Start文件夹中.

这是否意味着它会自动执行或者其他什么?当我为MVC 3添加Ninject时也发生了同样的事情.没有代码被添加到global.ascx文件中所以我不知道它的即插即用或者我必须配置一些东西.

[assembly: WebActivator.PreApplicationStartMethod(typeof(StackTorrents.WebUI.App_Start.SQLCEEntityFramework), "Start")]
Run Code Online (Sandbox Code Playgroud)

Joh*_*ell 42

根据:

http://haacked.com/archive/2010/05/16/three-hidden-extensibility-gems-in-asp-net-4.aspx

这个新属性允许您在应用程序启动时让代码在ASP.NET管道中尽早运行.我的意思是早期,甚至在Application_Start之前.这也恰好发生在App_code文件夹中的代码之前(假设您有任何代码).要使用此属性,请创建一个类库并将此属性添加为程序集级别属性.添加它的常见位置是Properties文件夹中的AssemblyInfo.cs类.

  • .NET框架中的PreApplicationStartMethodAttribute只允许每个程序集使用一个.最重要的是,WebActivator提供了自己的属性实现,允许每个程序集的多个实例. (2认同)

Geo*_*uer 19

为了澄清,它为您提供了一种方法来连接几个应用程序启动和应用程序关闭事件,而无需更改任何现有的代码文件(以前您必须编辑Globals.asax.cs).

在制作包时这通常是一个大问题,因为这些事件对于引导Http模块非常有用,而且很难将代码写入现有文件.