ASP.NET Core3.1中如何使用Autofac

ASP.NET Core3.1中如何使用Autofac

(1)添加Autofac.Extensions.DependencyInjection引用

 

(2)在Program.cs中添加工廠服務者

 public static IHostBuilder CreateHostBuilder(string[] args) =>

            Host.CreateDefaultBuilder(args)

            .UseServiceProviderFactory(new AutofacServiceProviderFactory()) //工廠服務者

             .ConfigureWebHostDefaults(webBuilder =>

                {

                    webBuilder.UseStartup<Startup>();

                });

(3)在Startup.cs中添加如下方法

public void ConfigureContainer(ContainerBuilder builder)
{

            //服務層程序集命名空間

            Assembly service = Assembly.Load("AutofacExamples.Service");

             //服務接口層程序集命名空間

            Assembly iservice= Assembly.Load("AutofacExamples.IService");

            //自動注入

            builder.RegisterAssemblyTypes(service,iservice)

                .Where(t => t.Name.EndsWith("Service"))

                .AsImplementedInterfaces();

}

(4)最後就可以在構造函數中獲取對象了

private readonly IPrint _print;

public WeatherForecastController(IPrint print)

{            

this._print = print;

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章