Das ist keine korrekte Aussage, dass " können Sie Code einbinden, der ausgeführt wird, bevor die Anwendung kompiliert wird. "
WebActivator-Klassen, die Sie erstellen, werden tatsächlich in die Assembly kompiliert, ermöglichen es Ihnen aber, sich zur Laufzeit in 3 Ereignisse einzuklinken:
1.) PreApplicationStartMethod 2.) PostApplicationSTartMethod 3.) ApplicationShutdownMethod
Aus David Ebbo's Beschreibung:
"WebActivator ist ein NuGet-Paket, das es anderen Paketen ermöglicht, auf einfache Weise Startup- und Shutdown-Code in eine Webanwendung einzubringen. Das ist eine viel sauberere Lösung, als die global.asax mit der Startlogik von vielen Paketen zu modifizieren."
Die Verwendung von WebActivator ist nicht nur auf Startup-Code für andere Pakete beschränkt, sondern kann auch für Startup-Code (Bootstrapping) für Ihre Anwendung verwendet werden.
Ich verwende es zum Beispiel, um meine Unity-Abhängigkeiten, mein Combres-Setup und mein 51DegreesMobi-Setup in einem Projekt einzurichten und zu konfigurieren, das ich kürzlich mit MVC3 abgeschlossen habe. Es ermöglicht mir, eine separate Klassendatei für jedes dieser Elemente zu haben, ohne dass ich eine einzige Codezeile in Global.asax einfügen muss.
Es ist auch eine viel bessere Alternative zu den .NET 4 PreApplicationStartMethod in, dass Sie viele Klassen, die die WebActivator.PreStartupMethod haben können und sie werden ALLE vor App-Start ausgeführt, im Gegensatz zu den .NET 4 Attribut, in dem ich glaube, Sie sind nur erlaubt, einmal zu verwenden.