1.为什么要用AutoFac?之前介绍过Unity和Ninject这两个IOC容器,但是发现园子里好像AutoFac比较常见,于是折腾了两天,发现这玩意确实是个高大上的IOC容器~Autofac是.NET领域的IOC框架之一,据说是最快的:优点:与C#语言密切相关,这意味着C#中的很多编程方法都可以用于Autofac,比如可以使用Lambda表达式注册组件降低学习曲线,学习起来很简单,只要了解IoC和DI的概念以及什么时候需要使用它们XML配置支持自动组装和与Asp.NetMVC集成3微软的Orchad开源程序使用Autofac,从中可以看出它的方便和强大,既然这么牛逼,我们用它也是理所当然的事,所以推荐它作为IOC的终极解决方案!2.AutoFac的使用首先,你必须获得AutoFac。您可以在此处以各种方式加载它。我仍然通过VS中的NuGet加载AutoFac。无论使用哪种方法,最终目的都是为了使用Autofac.dll,即Autofac。Configuration.dll这两个程序集被引用到您的项目中。这样,在你的项目中,如果要使用AutoFac,只需要添加它的命名空间reference~1。要开始使用AutoFac,我们首先定义一个数据访问接口:publicinterfaceIDAL{voidInsert(stringcommandText);分别实现以上接口的方法,不过这里只是演示,所以这两个类并没有真正实现,你懂的~SQL方法:publicclassSqlDAL:IDAL{publicvoidInsert(stringcommandText){Console.WriteLine("使用sqlDAL添加相关信息");}}Oracle方法:publicclassOracleDAL:IDAL{publicvoidInsert(stringcommandText){Console.WriteLine("使用OracleDAL添加相关信息");}}然后注入实现构造函数注入:publicclassDBManager{IDAL_dal;publicDBManager(IDALdal){_dal=dal;}publicvoidAdd(stringcommandText){_dal.Insert(commandText);要真正完成依赖注入,AtuoFac还得登场:varbuilder=newContainerBuilder();builder.RegisterType();builder.RegisterType().As();使用(varcontainer=builder.Build()){varmanager=container.Resolve();manager.Add("INSERTINTOPersonsVALUES('男人','25','WangW','上海')");}从上面的栗子可以看出,其实AutoFac的使用有点类似于Unity的使用,关键是Container容器类2、AutoFac常用方法说明(一)builder.RegisterType