.net mvc使用Autofac实现依赖注入IOC最简单实例教程
Autofac是一个轻量级的依赖注入的框架,同类型的框架还有Spring.NET,Unity,Castle等。
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
猜您可能还喜欢
- 完美解决iis下JWplayer提示Error loading media: File could not be played错误(3707)
- asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(2931)
- .Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2638)
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2577)
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2541)
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2191)
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2160)
- Jquery ajax访问asp.net web api跨域问题解决方案(1829)
- asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(五)后台模板html页面集成到项目中(1609)
- .Net Mvc中使用Jquery EasyUI控件讲解(二)树形控件tree使用介绍(1536)
评论列表
发表评论
文章分类
文章归档
阅读排行
- 1. Windows Server 2008 R2永久激活及Chew-WGA v0.9下载(12645)
- 2.Visual Studio 2017中安装visualSVN及使用详解(4838)
- 3.完美解决iis下JWplayer提示Error loading media: File could not be played错误(3707)
- 4.asp.net mvc+jquery easyui开发基础(一)模块首页及增加、修改、删除模块实现(2931)
- 5.Android avax.net.ssl.SSLPeerUnverifiedException: No peer certificate 解决方法(httpClient支持HTTPS的访问方式)(2792)
- 6..Net Mvc中使用Jquery EasyUI控件讲解(一)表格控件datagrid使用介绍(2638)
- 7.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(三)登录模块开发(2577)
- 8.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(七)权限管理模块之系统菜单动态生成(2541)
- 9. asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(六)权限管理模块之初始数据准备(2191)
- 10.asp.net mvc+jquery easyui开发实战教程之网站后台管理系统开发(八)权限管理模块之权限管理实现(2160)