.Net6使用AutoFac
一、下载AutoFac资源包
二、在API中创建Module继承Autofac.Module
//Module继承Autofac.Module
public class RbacModule:Autofac.Module
{
//重写Load方法
protected override void Load(ContainerBuilder builder)
{
//找到自己要注册的类库
var Ires = Assembly.Load("RBAC.IService");
//类库中类的后缀名为Service的都会注册
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());
});
最后在构造函数里注入自己要使用的的类就ok了。