AutoFac 依赖注入 .net6
一.下载AutoFac资源包
二、在API中创建Module继承Autofac.Module
public class AutoFacModule : Autofac.Module
{
//重写Load方法
protected override void Load(ContainerBuilder builder)
{
//找到自己要注册的类库 括号里是类库的名称
var Ires = Assembly.Load("Rbac.Service");
//类库中类的后缀名为Service的都会注册 AsImplementedInterfaces():如果类中继承了接口,则自动注册此类为接口的实现
builder.RegisterAssemblyTypes(Ires).Where(a => a.Name.EndsWith("Service")).AsImplementedInterfaces();
//其他需要注册的类
builder.RegisterType(typeof(MySqlContext));
base.Load(builder);
}
}
三.在Program.cs在注入自己创建的Module类
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory()).ConfigureContainer<ContainerBuilder>(builder =>
{
//RbacModule自己创建的Module类
builder.RegisterModule(new RbacModule());
});