.NET CORE-Auto整合至MVC中

  1. 在Program.cs中使用Autofac工厂去替代默认工厂:
        public static IHostBuilder CreateHostBuilder(string[] args) =>
                Host.CreateDefaultBuilder(args)
                    .ConfigureLogging(logging=> {
                        logging.AddLog4Net("log4net.Config");
                    })
                    .ConfigureWebHostDefaults(webBuilder =>
                    {
                        webBuilder.UseStartup<Startup>();
                    }).UseServiceProviderFactory(new AutofacServiceProviderFactory());

     

  2. 在Startup.cs中添加ConfigureContainer()方法去注册关系:
      public void ConfigureContainer(ContainerBuilder containerBuilder)
            {
                containerBuilder.RegisterType<TestServiceA>().As<ITestServiceA>();
                // containerBuilder.RegisterType<TestServiceB>().As<ITestServiceB>();
                containerBuilder.RegisterType<TestServiceC>().As<ITestServiceC>();
            }

    注意:Autofac中仍然接管了Startup.cs原有的ConfigureServices()方法,即在该方法中进行的服务注册,也是有效的,如下面代码中对 ITestServiceB 和 TestServiceB 的关联也仍然有效

    public void ConfigureServices(IServiceCollection services)
    {
            services.AddTransient<ITestServiceB, TestServiceB>();
    }

     

  3. 通过控制器构造函数进行注入。

 

posted @ 2022-02-24 17:09  没有童话的鱼  阅读(57)  评论(0编辑  收藏  举报