What does WebActivator do?

asp.net Mvcasp.net Mvc-3NinjectEf Code-First

asp.net Mvc Problem Overview


This code was generated for me after added entity framework code-first for SQL Server CE using NuGet. They did no changes to any other file. The file SQLCEEntityFramework.cs was created and placed in App_Start folder.

Does this mean it automatically gets executed or something? The same thing happened when I added Ninject for MVC 3. No code was added to the global.ascx file so I have no idea if its plug and play or I have to configure something.

[assembly: WebActivator.PreApplicationStartMethod(typeof(StackTorrents.WebUI.App_Start.SQLCEEntityFramework), "Start")]

asp.net Mvc Solutions


Solution 1 - asp.net Mvc

According to:

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

> This new attribute allows you to have > code run way early in the ASP.NET > pipeline as an application starts up. > I mean way early, even before > Application_Start. This happens to > also be before code in your App_code > folder (assuming you have any code in > there) has been compiled. To use this > attribute, create a class library and > add this attribute as an assembly > level attribute. A common place to add > this would be in the AssemblyInfo.cs > class within the Properties folder.

Solution 2 - asp.net Mvc

To clarify, it gives you a way of hooking into several application start and application shutdown events WITHOUT having to change any existing code files (previously you had to edit Globals.asax.cs).

This is mostly a big deal when making packages as these events are really useful for bootstrapping Http modules and it is really difficult to write code into existing files.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionShawn McleanView Question on Stackoverflow
Solution 1 - asp.net MvcJohn FarrellView Answer on Stackoverflow
Solution 2 - asp.net MvcGeorge MauerView Answer on Stackoverflow