Autofac程序集注入
Autofac是一个开源的轻量级的依赖注入容器,可自动选择使用构造函数注入或者属性注入。
- 浅浅记录Autofac
- 一、Autofac包引入
- 二、Startup类中应用
- 三、程序集注入
- 框架图
浅浅记录Autofac
一、Autofac包引入
1、Autofac
2、Autofac.Extensions.DependencyInjection
二、Startup类中应用
1、ConfigureServices中返回注册的Autofac
// 注册Autofac
return RegisterAutofac(services);
2、创建RegisterAutofac类,TeasingDbContext数据库连接字符串,在appsettings.json配置。TeasingDbContext为上下文映射。
private IServiceProvider RegisterAutofac(IServiceCollection services) {//创建注册组件/服务的构建器var builder = new ContainerBuilder();//将依赖的对象注入builder.Populate(services);//将新的模块注册进去,AutofacDI后面将会用反射进行程序集注入builder.RegisterModule<AutofacDI>();//初始化使用builder.Register(c => {var optionsBuilder = new DbContextOptionsBuilder<TeasingDbContext>();optionsBuilder.UseSqlServer(Configuration.GetConnectionString("TeasingDbContext"));return optionsBuilder.Options;}).InstancePerLifetimeScope();//注册DbContextbuilder.RegisterType<TeasingDbContext>().AsSelf().InstancePerLifetimeScope();//DI创建var Container = builder.Build();return new AutofacServiceProvider(Container);}
三、程序集注入
1、新建类 AutofacDI 需要继承Autofac.Module作为一个容器,实现一次性程序集注入。
protected override void Load(ContainerBuilder builder) {//程序集注入builder.RegisterAssemblyTypes(GetAssemblyByName("TS.Repository")).Where(a => a.Namespace.EndsWith("Repository")).AsImplementedInterfaces();}
public static Assembly GetAssemblyByName(String AssemblyName) {return Assembly.Load(AssemblyName);}
TS.Repository:是程序集名称
EndsWith(“Repository”):以Repository结尾的类
Assembly有三种加载程序集方式:
- Assembly.Load(“程序集名称”);
- Assembly.LoadFrom(“程序集名称.dll”);
- Assembly.LoadFile(“绝对路径”);
框架图
链接: link.
图片: 仅供参考
如有发现错误请联系微信:sunyong8860
看完视频或书籍后小结_.NET
Autofac程序集注入相关推荐
- efcore mysql autofac_Asp.NetCore3.1版本的CodeFirst与经典的三层架构与AutoFac批量注入
Core3.1 CodeFirst与AutoFac批量注入(最下面附GitHub完整 Demo,由于上传网速较慢,这里就直接压缩打包上传了) ===Core3.1 CodeFirst 数据库为远程阿里 ...
- Autofac 批量注入
如果有很多实现接口需要用到autofac进行注入,是不是需要调用ContainerBuilder.RegisterType()这个方法很多次?那有没有一个偷懒的方法呢?只需要三四行代码就可以实现所有接 ...
- Autofac 依赖注入框架
Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 优点:依 ...
- Donut:将.NET程序集注入Windows进程
Donut是一个shellcode生成工具,它可以从.NET程序集中创建与位置无关的shellcode payloads.此shellcode可用于将程序集注入任意Windows进程.给定一个任意.N ...
- Autofac - 属性注入
属性注入不同于通过构造函数方式传入参数. 这里是通过注入的方式, 在类创建完毕之后, 资源释放之前, 给属性赋值. 这里, 我重新弄一些类来演示这一篇吧. public class ClassA {p ...
- .NET MVC5+ Dapper+扩展+AutoFac自动注入实现
1.首先创建一个MVC项目 定义Model 层 view 层 index.cshtml 控制器层Controllers等文件 2.在线安装或者引用dapper 以及扩展相关包 同时Autofac ...
- 【懒人有道】在asp.net core中实现程序集注入
前言 在asp.net core中,我巨硬引入了DI容器,我们可以在不使用第三方插件的情况下轻松实现依赖注入.如下代码: 1 // This method gets called by the run ...
- asp.net mvc Autofac 依赖注入框架 使用
Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 源码下载 ...
- Autofac依赖注入
20220708注入学习 注入类 public partial class App : Application {public static string ConnectionString { get ...
最新文章
- buu [BJDCTF 2nd]燕言燕语-y1ng
- nth-of-type
- AChartEngine中的Renderer和DataSet介绍
- 抖音云控_抖音云控/快手云控:引领5G电商短视频新潮流
- 服务器系统玩dnf,win7系统玩dnf提示正在连接服务器的解决方法
- [css] 你有用过CSS预处理器吗?喜欢用哪个?原理是什么?
- 一些算法(最短路,线段树,01,完全背包,STL)的基本参考资料
- Ubuntu安装JDK,搭建java环境
- 2020-10-18
- 华为软件在线测试2018,2018华为软件精英挑战赛
- FPGA(七) PWM波
- ijkplayer播放器h265解码能力调研
- VM ESXI安装英伟达显卡驱动
- python实现坐标求取_根据相机位姿求指定点的世界坐标及其python实现
- ue4 无限地图_基于UE4的开放世界地图架构
- 巨头思科生死迷:错失重要时机 辉煌皆成尘土
- Speedoffice(PPT)如何做动画演示效果
- 【在Angular项目中使用googlemaps】
- [进来复制]springboot项目代码混淆,帮你安排的明白的混淆代码!
- 移动联通比拼八大热点应用
热门文章
- SPM混沌映射(含MATLAB代码)
- 打开idea的svn项目弹出Action not found:Subversion.Add提示解决办法
- web漏洞--注入漏洞
- 关于使用Pytorch时,训练集模型表现很好但测试集模型表现极差的原因
- 有限状态机(FSM)设计原理
- Java好学吗,我们怎么才能学好Java
- java好学么_java是什么好学吗?难不难学?
- Python之禅——传说中的蛇宗总纲
- Centos7服务器网络配置
- 解决CDH HiveServer2 因OutOfMemory errors原因造成异常退出问题