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的学习: namespaceConsoleApplication3 {classProgram {staticvoidMain(string[]args) {ContainerBuilderbuilder=newContainerBuilder(); builder.RegisterType<AutoFacManager>(); builder.RegisterType<Worker>().As<IPerson>();using(IContainercontainer=builder.Build()) {AutoFacManagermanager=container.Resolve<AutoFacManager>(); manager.Say(); } Console.ReadKey(); } }publicinterfaceIPerson {voidSay(); }publicclassWorker:IPerson {publicvoidSay() { Console.WriteLine("我是一个工人!"); } }publicclassStudent:IPerson {publicvoidSay() { Console.WriteLine("我是一个学生!"); } }publicclassAutoFacManager {IPersonperson;publicAutoFacManager(IPersonMyPerson) { person=MyPerson; }publicvoidSay() { person.Say(); } } } 以上例子,是一个最简单的例子,输出如下:
简单解释: 1、ContainerBuilder类型的作用 组件通过ContainerBuilder的对象注册。 2、组件 对象需要从组件中来获取,比如例子中的Worker类的实例就需要从组件中获取。 3、哪些实例可以作为组件
4、容器 ContainerBuilder的Build()方法可以创建容易,从容器的Resolve()方法能够获得对象。 5、为了指定组件服务是某一接口 As()方法将用于注册时之指定:builder.RegisterTye<TaskController>().As<TController>(); 组件的依赖关系主要通过接口实现,如Worker:IPerson 分类:框架:Autofac 绿色通道:好文要顶关注我收藏该文与我联系 逆心 +加关注 0 0 (请您对文章做出评价) 上一篇:ServiceStack.Redis常用操作 - 事务、并发锁 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |