Имам многослойно уеб приложение, което създадох с 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));
}
}