.net core 3.0 MVC学习-autofac

1.引入:Autofac.Extensions.DependencyInjection

2.在Program里面

public class Program
    {
        public static void Main(string[] args)
        {
            CreateHostBuilder(args).Build().Run();
        }

        public static IHostBuilder CreateHostBuilder(string[] args) =>
            Host.CreateDefaultBuilder(args)
                .ConfigureWebHostDefaults(webBuilder =>
                {
                    webBuilder.UseStartup<Startup>();
                })
             .UseServiceProviderFactory(new AutofacServiceProviderFactory()); //配置autofac;
    }

3.在Startup里面新增

services.AddControllersWithViews().AddControllersAsServices();
public void ConfigureContainer(ContainerBuilder builder)
        {
            //注册controller里面的service
            var controllerBaseType = typeof(Microsoft.AspNetCore.Mvc.ControllerBase);
            builder.RegisterAssemblyTypes(typeof(Program).Assembly)
                .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
                .InstancePerLifetimeScope().PropertiesAutowired();

            // 在这里添加服务注册

        }

大功告成

猜你喜欢

转载自www.cnblogs.com/zhaocha/p/11822863.html