【发布时间】:2016-03-25 19:09:57
【问题描述】:
我使用 ASP.NET MVC5、存储库模式、UoW 和 Autofac 实现了一个设计为 described here。
一切都适用于具有单一服务的控制器,但我有一个需要三个服务的控制器:
public MyController(IService1 service1, IService2 service2, IService3 service3)
{
_service1= service1;
_service2= service2;
_service3= service3;
}
现在,我像这样注册服务:
protected override void Load(ContainerBuilder builder)
{
builder.RegisterAssemblyTypes(Assembly.Load("namespace.service"))
.Where(t => t.Name.EndsWith("Service"))
.AsImplementedInterfaces()
.InstancePerLifetimeScope();
}
在运行时,我收到此错误:
没有找到任何构造函数 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' 类型 'namespace.Controllers.MyController' 可以用 可用服务和参数:无法解析参数 'Void .ctor ...的'.service.Service1 service1构造函数...
【问题讨论】:
-
您是否在 Autofac 容器中注册了所有服务?
-
我更新帖子,是的,我注册了所有服务。单独他们的工作
标签: c# asp.net-mvc asp.net-mvc-5 autofac