Autofac 解释第一个例子 《第一篇》
出处:http://www.cnblogs.com/kissdodog/p/3611447.html
Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等。
Autofac的使用有一个非常让人郁闷的地方,就是服务器要求安装有Microsoft .NET Framework 4 KB2468871。该补丁的地址是:http://www.microsoft.com/zh-cn/download/confirmation.aspx?id=3556 如果不安装,则运行程序会报如下错误:
具体信息可以到这里去查看:https://code.google.com/p/autofac/wiki/FrequentlyAskedQuestions
这篇文章以一个最简单的例子,开始Autofac的学习:
namespace ConsoleApplication3 { class Program{ static void Main(string[] args){ ContainerBuilder builder = new ContainerBuilder();builder.RegisterType<AutoFacManager>();builder.RegisterType<Worker>().As<IPerson>(); using (IContainer container = builder.Build()){ AutoFacManager manager = container.Resolve<AutoFacManager>();manager.Say();} Console.ReadKey();}} public interface IPerson{ void Say();} public class Worker : IPerson{ public void Say(){Console.WriteLine("我是一个工人!");}} public class Student : IPerson{ public void Say(){Console.WriteLine("我是一个学生!");}} public class AutoFacManager{ IPerson person; public AutoFacManager(IPerson MyPerson){person = MyPerson;} public void Say(){person.Say();}} }
以上例子,是一个最简单的例子,输出如下:
简单解释:
1、ContainerBuilder类型的作用
组件通过ContainerBuilder的对象注册。
2、组件
对象需要从组件中来获取,比如例子中的Worker类的实例就需要从组件中获取。
3、哪些实例可以作为组件
Lambda表达式
一个类型
一个预编译的实例
实例类型所在的程序集
4、容器
ContainerBuilder的Build()方法可以创建容易,从容器的Resolve()方法能够获得对象。
5、为了指定组件服务是某一接口
As()方法将用于注册时之指定:builder.RegisterTye<TaskController>().As<TController>();
6、组件的依赖关系
组件的依赖关系主要通过接口实现,如Worker:IPerson
分类: 框架:Autofac
绿色通道: 好文要顶 关注我 收藏该文与我联系
逆心
关注 - 23
粉丝 - 164
+加关注
0
0
(请您对文章做出评价)
上一篇:ServiceStack.Redis常用操作 - 事务、并发锁
下一篇:Autofac 组件、服务、自动装配 《第二篇》
转载于:https://blog.51cto.com/quanju/1548878
Autofac 解释第一个例子 《第一篇》相关推荐
- ESP8266 Non-OS SDK 开发之旅 基础篇① 初识 Non-OS SDK,史上超级详细手把手教小白20分钟快速搭建SDK软件开发环境,完成第一个例子Hello World!
文章目录 1.前言 2. SDK概述 2.1 SDK使用流程 2.2 ESP8266 HDK -- 硬件开发工具 2.3 ESP8266 SDK -- 软件开发工具包 2.3.1 Non-OS SDK ...
- TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅
TensorFlow学习笔记(二):快速理解Tutorial第一个例子-MNIST机器学习入门 标签: 机器学习SoftmaxTensorFlow教程 2016-08-02 22:12 3729人阅读 ...
- TensorFlow入门教程:1:安装和第一个例子程序
TensorFlow™ 是Google开源的一个采用数据流图用于数值计算的开源库.截止到目前为止在github上已经获得超过6万个Star,已经成为深度学习和机器学习方面最为受欢迎的项目,炙手可热.这 ...
- 【2022计算机综合试卷408考研第一轮_计算机网络篇】第二章 物理层
[2022计算机综合试卷408考研第一轮_计算机网络篇]第二章 物理层 一.物理层的基本概念: 1.物理层的概念和功能 1.定义:物理层解决如何在连接各种计算机的传输媒体上传输数据比特流 ,而不是指具 ...
- zstack 第一个例子
看了好长一段时间的原理,终于手痒了,开动了第一个例子,感谢大家来敢看我的博客!! 1. 协议栈构架 首先打开程序代码,找到IAR工程 ,打开后可以看到TI ZStack的大体框架,如下图 ...
- Ubantu下hadoop运行第一个例子wordcount过程
Ubantu12.04下hadoop-1.2.1运行第一个例子wordcount过程,分享一下 将WordCount.java文件放在Hadoop安装目录下,并在安装目录下创建输入目录input,目录 ...
- 《Unix网络编程卷1-套接字联网API》第一个例子编译 不通过问题解决
<Unix网络编程卷1-套接字联网API>是本好书. 但是第一个例子不是很好编译. 需要如下步骤: 本人机器CentOS 5.4 1.下载源码 unpv13e解压到任意目录 然后按其rea ...
- python中tornado的第一个例子
python中tornado的第一个例子 1 先安装tornado pip install tornado 2 新建tor.py 记住不能建立 tornado.py 这样的名字 不然会报错 Imp ...
- GLSL着色语言学习。橙皮书第一个例子GLSL+OpenTK+F#的实现。
Opengl红皮书有选择的看了一些,最后的讲着色语言GLSL的部分看的甚为不理解,然后找到Opengl橙皮书,然后就容易理解多了. 在前面,我们或多或少接触到Opengl的处理过程,只说前面一些处理, ...
最新文章
- 《C++面向对象高效编程(第2版)》——2.29 泛化关系(is-a)
- mysql实现row_number()和row_number() over(partition by)
- 用纯C面向过程写icefox3的代码
- Python手动实现kmeans聚类和调用sklearn实现
- kass中lisp文件,常见的Lisp-获取文件的路径
- SBuild 0.1.4 发布,基于 Scala 的构建系统
- Avalonia-.NET 的跨平台 UI 框架
- 调用API发送短信python
- 撰写paper时,如何在word里输入图片或其他文献(PDF)里的公式?(更新时间2022.03.01)
- ​京东云:原来落地 AI 应用是这么回事儿!
- tortoisesvn统计_TortoiseSVN使用教程——史上最全最易懂教程
- 使用YYLabel小结,供参考
- Excel合并多个文件
- 通过身份证号码获取年龄和出生日期
- 兼顾时尚与商务? ThinkPad Z 重新定义“商务本”
- qq批量登录软件_QQ一键签到助手v1.0
- 家庭智能 HomeAssistant 四大组件的安装
- NFT,不止于投机!
- html5中的meter标签改变颜色规则
- 二叉树非递归遍历(模版)