.Net core 3.+ 使用 Autofac 完成自动注册
public void ConfigureServices(IServiceCollection services)
{
services.AddHttpContextAccessor();
services.AddControllers()
.AddControllersAsServices(); //属性注入必须加上这个
}
public void ConfigureContainer(ContainerBuilder builder)
{
//获取所有控制器类型并使用属性注入
var controllerBaseType = typeof(ControllerBase);
builder.RegisterAssemblyTypes(typeof(Program).Assembly)
.Where(t => controllerBaseType.IsAssignableFrom(t) && t != controllerBaseType)
.PropertiesAutowired();
}
Controller 中使用
public IAccount account { get; set; }
搞定
下面提供一个最简单的例子