NetCore学习 (1)--添加autofac 第三方Ioc
1.引用 组件 Autofac.Extensions.DependencyInjection
2.program.cs 中添加
UseServiceProviderFactory(new AutofacServiceProviderFactory())
public static IHostBuilder CreateHostBuilder(string[] args) =>
Host.CreateDefaultBuilder(args).UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureWebHostDefaults(webBuilder =>
{
webBuilder.UseStartup<Startup>();
});
}
3.startup 里添加注入 容器(一般用程序集整个注入比较合适)
public void ConfigureContainer(ContainerBuilder builder)
{
//方式二 扫描程序集, RegisterAssemblyTypes接收包含一个或多个程序集的数组作为参数. 默认地, 程序中所有具体的类都将被注册.
var asm = Assembly.Load("MvcService");//指定dll名称的程序集集
var defulatAsm = Assembly.GetExecutingAssembly();//默认执行的dll
builder.RegisterAssemblyTypes(asm, defulatAsm)
.PublicOnly()//仅注册public的方法
.Where(t => t.Name.EndsWith("Service"))//可以在这里写一些过滤类名规则
.AsImplementedInterfaces();
RegisterContainerBuilder(builder);
}
4.也可以单独注入某个类
public void RegisterContainerBuilder(ContainerBuilder builder)
{
builder.RegisterType<PriceLogic>();
}


浙公网安备 33010602011771号