AutoFac
AutoFac的配置使用
一.什么是AutoFac
第三方IOC容器
二.优点
-
它是C#语言联系很紧密,也就是说C#里的很多编程方式都可以为Autofac使用,例如可以用Lambda表达式注册组件
-
较低的学习曲线,学习它非常的简单,只要你理解了IoC和DI的概念以及在何时需要使用它们
-
XML配置支持
-
自动装配
-
与Asp.Net MVC 3集成
-
微软的Orchad开源程序使用的就是Autofac,从该源码可以看出它的方便和强大
三.使用
第一步:Negut包下载AutoFac和Autofac.Extensions.DependencyInjection
第二步:自定义一个类,方便对注入服务进行管理(AutoFacModelRegister)
步骤:1.继承Autofac.Module
2.//重写管道load方法,进行注册注入
3.在这里需要注意,必须让自己的程序集在api下面的ben可以找到,需要在依赖项找到程序集打开
点击查看代码
public class AutoFacModelRegister:Autofac.Module
{
//重写管道load方法,进行注册注入
protected override void Load(ContainerBuilder builder)
{
//程序集注入业务服务(通过反射的方法动态获取程序集,"Repository","service"都需要注册)
//Load:加载程序集(自己项目的程序集名称)
Assembly? IAppServices = Assembly.Load("RBAC.Exam.Repository");
//var AppServices = Assembly.Load("Service");
//根据名称约定(服务层的接口和实现均以Repository结尾),实现服务接口和服务实现的依赖
builder.RegisterAssemblyTypes(IAppServices)
//(带有指定后缀的文件)
.Where(t => t.Name.EndsWith("Repository"))
//开放接口,注入
.AsImplementedInterfaces();
//单个注册
builder.RegisterType(typeof(JwtSecurityTokenHandler)).SingleInstance();
builder.RegisterType(typeof(TokenHelper)).SingleInstance();
}
}
</details>
第三步:在Program.cs进行配置
builder.Host.UseServiceProviderFactory(new AutofacServiceProviderFactory())
.ConfigureContainer<ContainerBuilder>(builder =>
{
//此处AutoFacModelRegister为自己第二步创建的类
builder.RegisterModule<AutoFacModelRegister>();
});
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现