.net core 在DI容器中为所有控制器分配一个寄存器
我有一个相当简单的问题,我正在.NETCore2.0下测试Autofac DI容器,例如我有一个控制器.net core 在DI容器中为所有控制器分配一个寄存器,.net-core,autofac,.net Core,Autofac,我有一个相当简单的问题,我正在.NETCore2.0下测试Autofac DI容器,例如我有一个控制器 public class ValuesController : Controller { private readonly ITestModel _testModel; public ValuesController(ITestModel testModel) { _testModel = testModel; } } 并在启动时注册DI:
public class ValuesController : Controller
{
private readonly ITestModel _testModel;
public ValuesController(ITestModel testModel)
{
_testModel = testModel;
}
}
并在启动时注册DI:
public IServiceProvider ConfigureServices(IServiceCollection services)
{
services.AddMvc();
var builder = new ContainerBuilder();
builder.RegisterType<TestModel>().As<ITestModel>();
builder.Populate(services);
var container = builder.Build();
return container.Resolve<IServiceProvider>();
}
公共IServiceProvider配置服务(IServiceCollection服务)
{
services.AddMvc();
var builder=new ContainerBuilder();
builder.RegisterType().As();
建造商。填充(服务);
var container=builder.Build();
返回container.Resolve();
}
它工作得很好,但我一直在想,如果我有20个这样的控制器和20多个带构造函数的逻辑类,以及一些接口的参数,我是否需要以同样的方式注册它们,它很快就会变得很难看。所以我的问题是,在这个环境中,是否有可能一次将所有只有接口的控制器和类注册为参数???如in注释所述,程序集扫描但所有引用(当然由接口过滤)的程序集都按计划工作。如in注释所述,程序集扫描,但在所有引用的情况下(当然是通过界面过滤),程序集按计划工作。
builder
builder
.RegisterAssemblyTypes(typeof(HomeController).Assembly)
.AssignableTo<Controller>()
.InstancePerLifetimeScope()
.PropertiesAutowired();
.RegisterAssemblyTypes(typeof(HomeController).Assembly)
.可转让给
.InstancePerLifetimeScope()实例
.属性自动连线();
请确保引用项目中的控制器(HomeController
)
builder
.RegisterAssemblyTypes(typeof(HomeController).Assembly)
.可转让给
.InstancePerLifetimeScope()实例
.属性自动连线();
请确保引用项目中的控制器(HomeController
)
查看Autofac文档中的概念。查看Autofac文档中的概念。