.Net6使用AutoFac

发布时间 2023-08-31 21:38:17作者: 三月ღ

一、下载AutoFac资源包

img

二、在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了。