WebAPI_AutoFac(依赖注入)的简单使用
控制器:构造函数注入不同类型的实例赋值给其实现的接口类型
public class UserController : ApiController{private IPersons person;//接收注入的类型实例public UserController(UCer ucer)//构造函数注入{this.person = ucer;}// GET: api/Userpublic string Get(){return person.Say();}}
Global文件(配置):
public class WebApiApplication : System.Web.HttpApplication{protected void Application_Start(){//--导入AutoFac-AutoFac.WebAPI2//创建容器var builder = new ContainerBuilder();// Get your HttpConfiguration.var config = GlobalConfiguration.Configuration;//加载程序集类型,自动注册其下面的所有类型(中英文)builder.RegisterAssemblyTypes(Assembly.Load("Chinaese"));//加载本程序集下的所有控制器类型builder.RegisterApiControllers(Assembly.GetExecutingAssembly());//编译一下var container = builder.Build();//WebApi整个的解析依赖交给AutoFac //默认构造函数注入config.DependencyResolver = new AutofacWebApiDependencyResolver(container);//把所有类型都注册到AutoFac容器里,最后把整个项目的实例创建和解析依赖交给AutuFac,//这样AutoFac在创建控制器实例的时候根据参数类型(不注入的走无参构造函数),去容器取对应实例进行注入AreaRegistration.RegisterAllAreas();GlobalConfiguration.Configure(WebApiConfig.Register);FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);RouteConfig.RegisterRoutes(RouteTable.Routes);BundleConfig.RegisterBundles(BundleTable.Bundles);}}
B站资源
B站视频简单教程>>>
如果程序中出现请确保控制器具有无参构造函数!!那就是容器内没有其构造函数参数指定的类型资源(需要注入的资源类型没有被注册到容器内)。
2020-04-05 16:35
WebAPI_AutoFac(依赖注入)的简单使用相关推荐
- DI(依赖注入)简单理解 NO1
依赖注入:目的削减程序的耦合度,达到高内聚/低耦合 常用形式:Interface Driven Design接口驱动,接口驱动有很多好处,可以提供不同灵活的子类实现,增加代码稳定和健壮性等等. 通过I ...
- JAVA(一)依赖注入的简单理解
所谓依赖,举个例子说明,一个类Person,另一个类Car,如果Person的某个方法比如说drive,需要引用Car,则称Person类依赖于 Car类,延伸到对象,这种依赖关系依然成立,比如说Pe ...
- 动手造轮子:实现一个简单的依赖注入(零)
动手造轮子:实现一个简单的依赖注入(零) Intro 依赖注入为我们写程序带来了诸多好处,在微软的 .net core 出来的同时也发布了微软开发的依赖注入框架 Microsoft.Extension ...
- Android mock for循环,Android单元测试(五):依赖注入,将mock方便的用起来
在上一篇文章中,咱们讲了要将mock出来的dependency真正使用起来,须要在测试环境下经过某种方式set 到用到它的那个对象里面进去,替换掉真实的实现.咱们前面举的例子是:html public ...
- PHP Reflection与依赖注入
PHP具有完整的反射 API,提供了对类.接口.函数.方法和扩展进行逆向工程的能力.通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性.什么方法.方法都有哪些参数,类文件的路径是什么等很 ...
- 一文看懂PHP如何实现依赖注入
PHP具有完整的反射 API,提供了对类.接口.函数.方法和扩展进行逆向工程的能力.通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性.什么方法.方法都有哪些参数,类文件的路径是什么等很 ...
- 浅析如何通过PHP类的反射来实现依赖注入
PHP具有完整的反射 API,提供了对类.接口.函数.方法和扩展进行逆向工程的能力.通过类的反射提供的能力我们能够知道类是如何被定义的,它有什么属性.什么方法.方法都有哪些参数,类文件的路径是什么等很 ...
- Android单元测试(五):依赖注入,将mock方便的用起来
在上一篇文章中,我们讲了要将mock出来的dependency真正使用起来,需要在测试环境下通过某种方式set 到用到它的那个对象里面进去,替换掉真实的实现.我们前面举的例子是: public cla ...
- 依赖注入(DI)入门
依赖注入的英文翻译是 Dependency Injection,缩写为 DI.对于这个概念,有一个非常形象的说法,那就是:依赖注入是一个标价 25 美元,实际上只值 5 美分的概念.也就是说,这个概念 ...
最新文章
- 现在上学有点赛博朋克内味儿了
- 分割2021PanopticFCN
- 现在社交APP发展如何?
- 排列出所有子串暴力递归
- Oracle11g RAC常用操作 (维护及管理)
- 民意调查Django实现(一)
- 基于VGG的感知损失函数--人眼感知的loss
- 【PetShop 4.0学习】4.数据库结构
- 时过境迁:Oracle跨平台迁移之XTTS方案与实践
- quartus仿真15:全加器和半加器及如何生成符号文件
- Typecho独立下载插件安装与使用
- 什么邮箱的归档功能好用?
- 深光标准技术:谷歌GMS认证是什么?谷歌AER认证是什么?GMS认证的费用跟周期是多少??
- HiC-Pro | HiC数据处理工具
- [导入]冰刃Icesword 1.22测试版发布
- shell脚本实现通过ssh跳板机(动态密码)一键登陆服务器(相关问题与解决方案)
- CSS font-size单位
- 屏幕尺寸、分辨率、视口笔记
- (18) 基于时空多图卷积网络的网约车需求预测
- linux 进程 ssl 状态,Linux进程状态与信号
热门文章
- LPR个人房贷利率如何计算?(商贷部分)
- [Android]如何做一个崩溃率少于千分之三噶应用app(15)-View分发module架构
- Swi-Prolog 数值约束
- 安装oracle 10g XE后的提示
- 云计算的“傲慢”与“偏见”
- v-rep仿真之键盘控制机械臂末端移动
- mysql 编程_MySQL编程
- 与古人有关......
- matlab 中的 yalmip安装方法
- 5000 字带你快速入门 Apache Kylin