日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Ioc容器Autofac介绍

發(fā)布時間:2023/12/18 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Ioc容器Autofac介绍 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

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的實現(xiàn)了:

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類似,也是通過三步完成的。

  • 創(chuàng)建一個ContainerBuilder,容器構造器。
  • 登記服務和組件及對應的實例對象
  • 最后就是通過生成的容器并構造出來的IContainer取對象實例了。
  • ?



    同樣的,組件及實例對象的映射關系可以通過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() ; }

    轉載于:https://www.cnblogs.com/zgqys1980/archive/2012/08/22/2650921.html

    總結

    以上是生活随笔為你收集整理的Ioc容器Autofac介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。