У меня есть многоуровневое веб-приложение, которое я создал с помощью ASP.NET MVC 4, WebAPI и некоторых других компонентов. Я использую последнюю версию Autofac 2.6.2.859 в качестве контейнера DI вместе с интеграциями MVC и WebAPI. У меня установлены модули autofac на разных уровнях, и я использую новые RegisterAssemblyModules для сканирования сборок AppDomain для различных модулей.
При запуске все отлично работает. Когда я редактирую файл web.config и приложение нагревается, мои регистрации теряются. Я получаю исключение DependencyResolutionException -
Ни один из конструкторов, обнаруженных с «общедоступными флагами привязки» для типа «My.Class.Name», не может быть вызван с доступными службами и параметрами:
Так что мои регистрации не перезагружаются. Кто-нибудь знает, как решить эту проблему? Должен ли я поместить свой код инициализации в другое место, кроме Application_Start ()?
ОБНОВЛЕНИЕ
Вот как выглядит мой код
public static class IoC
{
public static void Configure()
{
var builder = new ContainerBuilder();
var assemblies = AppDomain.CurrentDomain.GetAssemblies();
//Assembly Modules
builder.RegisterAssemblyModules<NSUTriviaModuleBase>(assemblies);
// Register API controllers using assembly scanning.
builder.RegisterControllers(assemblies);
// Register API controllers using assembly scanning.
builder.RegisterApiControllers(assemblies);
var container = builder.Build();
// Set the dependency resolver implementation.
var resolver = new AutofacWebApiDependencyResolver(container);
GlobalConfiguration.Configuration.DependencyResolver = resolver;
DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
}
}