webapi 控制器支持属性注入

安装autofac

builder.Host.ConfigureContainer<ContainerBuilder>(containerBuilder =>
{
     containerBuilder.RegisterType<DepartmentRepository>().As<IDepartmentRepository>().PropertiesAutowired().EnableInterfaceInterceptors();
     containerBuilder.RegisterType<DepartmentService>().As<IDepartmentService>().PropertiesAutowired().EnableInterfaceInterceptors();

    //注册每个控制器和抽象之间的关系
     var controllerBaseType = typeof(ControllerBase);
     containerBuilder.RegisterAssemblyTypes(typeof(Program).Assembly)
     .Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
    .PropertiesAutowired();//支持属性注入
});

//支持控制器的实例让I0c容器来创建---autofac来创建
builder.Services.Replace(ServiceDescriptor.Transient<IControllerActivator, ServiceBasedControllerActivator>());

posted @ 2025-03-11 22:24  网络来者  阅读(11)  评论(0)    收藏  举报