Ioc容器Autofac介绍
发布时间:2020-12-12 14:57:44 所属栏目:MsSql教程 来源:网络整理
导读:Autofac是轻量级的开源Ioc容器,在这里可以下载 http://code.google.com/p/autofac/。如果你用过其他的Ioc容器,那么学习Autofac使用也会比较容易,下面将通过一些例子来讲解其用法。 先看一个例子: 首先新建一个工程,添加Autofac引用。 准备代码,和之前
Autofac是轻量级的开源Ioc容器,在这里可以下载http://code.google.com/p/autofac/。如果你用过其他的Ioc容器,那么学习Autofac使用也会比较容易,下面将通过一些例子来讲解其用法。 先看一个例子: 首先新建一个工程,添加Autofac引用。 准备代码,和之前的一样 interface IDal { void save(); } class SqlServerDal : IDal { public void save() { Console.WriteLine("SqlServer save."); } } class OracleDal : IDal { public void save() { Console.WriteLine("Oracle save."); } } 接下来就是Ioc的实现了: class DataFactory { public static IContainer GetContainers() { var builder = new ContainerBuilder(); builder.Register<IDal>(c => new OracleDal()).SingleInstance(); return builder.Build() ; } } 接下来就是获取对象的实例并调用 static void Main(string[] args) { var container = DataFactory.GetContainers(); container.Resolve<IDal>().save(); Console.Read(); } 好,我们来分析一下代码,看看Autofac容器的构造及获取实例的过程:从代码中可以看出,和Unity类似,也是通过三步完成的。
同样的,组件及实例对象的映射关系可以通过XML文件进行配置: <?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="autofac" type="Autofac.Configuration.SectionHandler,Autofac.Configuration"/> </configSections> <autofac> <components> <component type="AutofacDemo.OracleDal,AutofacDemo" service="AutofacDemo.IDal,AutofacDemo" /> </components> </autofac> </configuration> 调用配置文件注册组件 public static IContainer GetContainers() { var builder = new ContainerBuilder(); // builder.Register<IDal>(c => new OracleDal()).SingleInstance(); builder.RegisterModule(new ConfigurationSettingsReader("autofac")); return builder.Build() ; } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |