Autofac依赖注入框架
最近使用Autofac框架做项目的依赖注入,感觉挺好用的。
没有深入研究,只是拿来用用,具体可以去官网看看:https://autofac.org/。
这里只是贴一下最近项目的配置:
- public partial class Startup
- {
- public void ConfigureContainer(IAppBuilder app)
- {
- var builder = new ContainerBuilder();
- // You can register controllers all at once using assembly scanning...
- builder.RegisterControllers(typeof(MvcApplication).Assembly);
- // Get your HttpConfiguration.
- var config = GlobalConfiguration.Configuration;
- // Register your Web API controllers.
- builder.RegisterApiControllers(Assembly.GetExecutingAssembly());
- // OPTIONAL: Register the Autofac filter provider.
- builder.RegisterWebApiFilterProvider(config);
- // OPTIONAL: Register the Autofac model binder provider.
- builder.RegisterWebApiModelBinderProvider();
- // ...or you can register individual controlllers manually.
- //builder.RegisterType<HomeController>().InstancePerRequest();
- builder.RegisterModule<AutofacWebTypesModule>();//Register Web Abstractions
- builder.RegisterSource(new ViewRegistrationSource());//Enable Property Injection for View Pages
- builder.RegisterFilterProvider();//Enable Property Injection for Action Filters
- builder.RegisterType<EFDbContext>().As<IDbContext>().InstancePerRequest();
- builder.RegisterGeneric(typeof(Repository<>)).As(typeof(IRepository<>)).InstancePerLifetimeScope();
- builder.RegisterType<MemoryCacheManager>().As<ICacheManager>().InstancePerRequest();
- #region Service
- builder.RegisterType<SysUserService>().As<ISysUserService>().InstancePerLifetimeScope();
- //注册各种服务
- #endregion
- var container = builder.Build();
- DependencyResolver.SetResolver(new AutofacDependencyResolver(container));
- config.DependencyResolver = new AutofacWebApiDependencyResolver(container);
- RuntimeContext.Instance.ContainerManager = new ContainerManager(container);//存储到全局实例中
- // OWIN MVC SETUP:
- // Register the Autofac middleware FIRST, then the Autofac MVC middleware.
- app.UseAutofacMiddleware(container);
- app.UseAutofacMvc();
- }
- }
项目是基于MVC的,利用Startup的partialt特性,加了上面依赖注入配置方法ConfigureContainer,然后可以在MVC的Startup类的Configuration方法中调用该方法,如下:
- public void Configuration(IAppBuilder app)
- {
- ConfigureContainer(app);
- }
OK,依赖注入搞定了.
Autofac依赖注入框架的更多相关文章
- .net mvc web api Autofac依赖注入框架-戈多编程
今天自己搭了一套基于三层的依赖注入mvc web api 的依赖注入框架,在此总结下相关配置 1.设置应用程序的.net Framework版本为 4.5 2.通过Nuget 安装autofac包 I ...
- Autofac 依赖注入框架 使用
简介 Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高. 官方网站http://autofac.org/ 源 ...
- Autofac依赖注入框架使用
简介: Autofac是一款IOC框架,比较于其他的IOC框架,如Spring.NET,Unity,Castle等等所包含的,它很轻量级性能上非常高 控制反转和依赖注入: 控制反转 IOC(Inver ...
- 从零开始,搭建博客系统MVC5+EF6搭建框架(2),测试添加数据、集成Autofac依赖注入
一.测试仓储层.业务层是否能实现对数据库表的操作 1.创建IsysUserInfoRepository接口来继承IBaseRepository父接口 namespace Wchl.WMBlog.IRe ...
- .NET Core 中依赖注入框架详解 Autofac
本文将通过演示一个Console应用程序和一个ASP.NET Core Web应用程序来说明依赖注入框架Autofac是如何使用的 Autofac相比.NET Core原生的注入方式提供了强大的功能, ...
- 【干货】利用MVC5+EF6搭建博客系统(二)测试添加数据、集成Autofac依赖注入
PS:如果图片模糊,鼠标右击复制图片网址,然后在浏览器中打开即可. 一.测试仓储层.业务层是否能实现对数据库表的操作 1.在52MVCBlog.IRepository程序集下创建IsysUserInf ...
- .net core程序中使用微软的依赖注入框架
我之前在博文中介绍过Asp.net core下系统自带的依赖注入框架,这个依赖框架在Microsoft.Extensions.DependencyInjection中实现,本身并不是.net core ...
- ADO.NET .net core2.0添加json文件并转化成类注入控制器使用 简单了解 iTextSharp实现HTML to PDF ASP.NET MVC 中 Autofac依赖注入DI 控制反转IOC 了解一下 C# AutoMapper 了解一下
ADO.NET 一.ADO.NET概要 ADO.NET是.NET框架中的重要组件,主要用于完成C#应用程序访问数据库 二.ADO.NET的组成 ①System.Data → DataTable, ...
- ASP.NET中IOC容器Autofac(依赖注入DI 控制反转IOC)
IOC的一个重点是在程序运行中,动态的向某个对象提供它所需要的其他对象.这一点是通过DI来实现的.Autofac则是比较流行的一款IOC容器. IoC和DI有什么关系呢?其实它们是同一个概念的不同角度 ...
随机推荐
- 百度地图----->地图类型、定位模式、实时交通、我的位置、加入覆盖物、覆盖物详情及提示
在百度地图开发平台 http://developer.baidu.com/map/index.php? title=androidsdk 进行创建应用,获取应用的AK,在进行下载BaiduLBS_An ...
- Educational Codeforces Round 6 A. Professor GukiZ's Robot 水
A. Professor GukiZ's Robot Professor GukiZ makes a new robot. The robot are in the point with coor ...
- 区间不相交&区间覆盖
//code by virtualtan 2018 寒7 区间不相交 #include <cstdio> #include <algorithm> #define MAXN 1 ...
- 51nod 1158 全是1的最大子矩阵(单调栈 ,o(n*m))
前置问题:51nod 1102 面积最大的矩形 附上链接: 51nod 1102 面积最大的矩形 这题的题解博客 需要了解的知识:单调栈,在前置问题中已经讲解. 解题思路 对每行求左边连续1的个数,得 ...
- centos下nginx配置
转自 http://www.linuxidc.com/Linux/2016-09/134907.htm 安装所需环境 Nginx 是 C语言 开发,建议在 Linux 上运行,当然,也可以安装 Wi ...
- POJ 3660 Cow Contest【传递闭包】
解题思路:给出n头牛,和这n头牛之间的m场比赛结果,问最后能知道多少头牛的排名. 首先考虑排名怎么想,如果知道一头牛打败了a头牛,以及b头牛打赢了这头牛,那么当且仅当a+b+1=n时可以知道排名,即为 ...
- Dbf文件操作
package cn.com.szhtkj.util; import java.io.File; import java.io.IOException; import java.lang.reflec ...
- 解决com.mysql.jdbc.PacketTooBigException: Packet for query is too large问题
2017年05月10日 09:45:55 阅读数:1659 在做查询数据库操作时,报了以上错误,原因是MySQL的max_allowed_packet设置过小引起的,我一开始设置的是1M,后来改为了2 ...
- 第三方-FastDFS分布式文件系统
1.什么是FastDFS? FastDFS 是用 c 语言编写的一款开源的分布式文件系统.FastDFS 为互联网量身定制, 充分考虑了冗余备份.负载均衡.线性扩容等机制,并注重高可用.高性能等指标, ...
- 小程序使用wepy框架自定义loading组件
1:定义组 <template> <view class="app-loading-container" style="{{options.cssTex ...