У меня есть интерфейс ITestService. TestService1 и TestService2 реализует ITestService. То, что я хочу, чтобы использовать TestService1 для Controller1 и TestService2 для Controller2. Как это сделать в Autofac?Autofac Регистрация различной реализации для разных контроллеров
Я использую ASP.NET MVC4.
Я попытался это один, но оно не работал
builder.RegisterType<Controller1>().WithParameter(ResolvedParameter.ForNamed<ITestService>("TestService1")).InstancePerDependency();
builder.RegisterType<Controller2>().WithParameter(ResolvedParameter.ForNamed<ITestService>("TestService2")).InstancePerDependency();
Я также попробовал этот, ни успеха
builder.RegisterType<TestService1>().Named<ITestService>("TestService1").As<ICategoryService>();
builder.RegisterType<TestService2>().Named<ICategoryService>("TestService2").As<ICategoryService>();
builder.RegisterType<Nop.Web.Controllers.Controller1>().WithParameter(ResolvedParameter.ForNamed<ITestService>("TestService1"));
builder.RegisterType<Nop.Admin.Controllers.Controller2>().WithParameter(ResolvedParameter.ForNamed<ITestService>("TestService2"));
Ваш второй пример должен работать, какое сообщение об ошибке вы получите? Единственная странность в вашем примере, которую вы иногда пишете 'ITestService' иногда' ICategoryService', но я думаю, что это просто опечатка в вашем примере ... – nemesv