我有一个ITestService接口。 TestService1和TestService2实现ITestService。我想要的是使用TestService1 for Controller1 and TestService2 for 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