Это неверное утверждение, что " позволяет подключить код для запуска до компиляции приложения. "
Создаваемые классы WebActivator на самом деле компилируются в сборку, но позволяют подключаться к 3 событиям во время выполнения:
1.) PreApplicationStartMethod
2.) PostApplicationSTartMethod
3.) ApplicationShutdownMethod
Из описания Дэвида Эббо:
"WebActivator - это пакет NuGet, который позволяет другим пакетам легко вносить код запуска и завершения работы в веб-приложение. Это дает намного более чистое решение, чем необходимость изменять global.asax с помощью логики запуска из многих пакетов. «
Использование WebActivator не ограничивается кодом запуска для других пакетов, его также можно использовать для кода запуска (начальной загрузки) для вашего приложения.
Например, я использую его для установки и настройки моих зависимостей Unity, моей настройки Combres и моей настройки 51DegreesMobi в недавнем проекте, который я завершил с использованием MVC3. Это позволяет мне иметь отдельный файл класса для каждого из них, не загромождая и не вводя ни одной строки кода в Global.asax.
Это также гораздо лучшая альтернатива .NET 4 PreApplicationStartMethod, поскольку у вас может быть много классов с WebActivator.PreStartupMethod, и они ВСЕ будут выполняться до App-Start, в отличие от атрибута .NET 4, в котором Я считаю, что вы можете использовать только один раз.