using Autofac; using Bunny.Common.Context.Database; using Bunny.Service.IService; using Bunny.Service.IService.Service; using Microsoft.AspNetCore.Mvc; namespace Bunny.WebApi.Configuration; public static class AddAutofacConfig { public static void BuildContainer(ContainerBuilder builder) { // 异步方式创建数据库 new EfCoreContext().Database.EnsureCreatedAsync(); // 如果不在在 Controller 层写构造函数可以打开这个,自动完成注入 var controllerBaseType = typeof(ControllerBase); builder.RegisterAssemblyTypes(typeof(Program).Assembly) .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType) .PropertiesAutowired(); //支持属性注入 // 系统相关注入 SystemRegisterType(builder); // 服务相关注入 ServiceRegisterType(builder); } /// /// 系统相关注入 /// /// ContainerBuilder private static void SystemRegisterType(ContainerBuilder builder) { builder.RegisterType(); } /// /// 服务相关注入 /// /// ContainerBuilder private static void ServiceRegisterType(ContainerBuilder builder) { // 注入Service服务 builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); builder.RegisterType().As(); } }