48 votes

Que fait WebActivator?

Ce code a été généré pour moi après l'ajout du code de structure d'entité, en premier lieu, pour SQLCE à l'aide de NuGet. Ils n'ont apporté aucune modification à aucun autre fichier. Le fichier ( SQLCEEntityFramework.cs été créé et placé dans le dossier App_Start .

Cela signifie-t-il qu'il est automatiquement exécuté ou quelque chose? La même chose s'est produite lorsque j'ai ajouté Ninject for MVC 3. Aucun code n'a été ajouté au fichier global.ascx, donc je ne sais pas s'il s'agit d'un plug-and-play ou si je dois configurer quelque chose.

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

42voto

jfar Points 19380

Selon:

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

Cette attribut permet d'avoir des code à exécuter début de l'ASP.NET pipeline comme une application démarre. Je veux dire de façon précoce, avant même Application_Start. Ce qui se passe à aussi avant de de code dans votre App_code dossier (en supposant que vous avez le code il n'y) a été compilé. Pour utiliser cette attribut, créer une bibliothèque de classes et de ajouter cet attribut comme un assemblage au niveau de l'attribut. Un endroit commun à ajouter ce serait dans le AssemblyInfo.cs de la classe dans les Propriétés du dossier.

19voto

George Mauer Points 22685

Pour clarifier, cela vous permet de vous connecter à plusieurs événements de démarrage et d'arrêt d'application SANS modifier aucun fichier de code existant (auparavant, vous deviez éditer Globals.asax.cs).

Ceci est principalement un gros problème lors de la création de packages car ces événements sont vraiment utiles pour amorcer les modules Http et il est très difficile d'écrire du code dans des fichiers existants.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X