天天看點

Autofac和nopcommerce中的Autofac, 還有反射

随筆分類 - Ioc

Ioc容器Autofac系列(3)-- 三種注冊元件的方式

摘要: 簡單來說,所謂注冊元件,就是注冊類并映射為接口,然後根據接口擷取對應類,Autofac将被注冊的類稱為元件。 雖然可像上篇提到的一次性注冊程式集中所有類,但AutoFac使用最多的還是單個注冊。這種注冊共有三種方式,其中最簡單的就是用As方法,例如,ArrayList繼承了IEnumerable接口,若将其注冊到Autofac中,寫法如下所示: ContainerBuilder b...閱讀全文

posted @ 2012-12-12 03:03 許兩會 閱讀(4640) | 評論 (13) 編輯

Ioc容器Autofac系列(2)-- asp.net mvc中整合autofac

摘要: 經過上篇蜻蜓點水的介紹後,本篇通過執行個體快速上手autofac,展示當asp.net mvc引入了autofac之後會帶來什麼。 建立Asp.net MVC并引入Autofac 首先,建立一個MVC站點,為友善起見,選初始帶HomeController和AccountController的那種。然後通過NuGet或到Autofac官網下載下傳來引入類庫。個人推薦前者,因為從VS2010開始,已内集可...閱讀全文

posted @ 2012-11-28 13:54 許兩會 閱讀(9470) | 評論 (14) 編輯

Ioc容器Autofac系列(1)-- 初窺

摘要: 前言第一次接觸Autofac是因為CMS系統--Orchard,後來在一個開源爬蟲系統--NCrawler中也碰到過,随着深入了解,我越發覺得Ioc容器是Web開發中必不可少的利器。那麼,Ioc容器是用來做什麼的?用了有什麼好處?我相信如果不明白這兩點就很難敞開心扉接受Ioc容器。傳統解耦設計的弊端為友善描述,舉個日志的栗子。我簡化實作,一個Log類,一個SaveLog方法。如果其他類想擁有記日志功能,那麼隻需在内部包含一個Log類型的變量:publicclassLog { publicvoid SaveLog(string message) { // save log here. } } .閱讀全文

posted @ 2012-11-21 02:16 許兩會 閱讀(11506) | 評論 (24) 編輯

Autofac 元件、服務、自動裝配 《第二篇》 這個最全

autofac文檔:執行個體生命周期

Nopcommerce中使用了一個單例類封裝了autofac的注冊

Autofac和nopcommerce中的Autofac, 還有反射

找到所有實作了IdependencyRegister接口的類, 然後反射得到執行個體, 進行動态注冊

反射備忘

nop實作的Itypefinder可以找到實作某個接口的類 http://www.cnblogs.com/miku/archive/2012/09/24/2700776.html

var typesToRegister = Assembly.GetExecutingAssembly().GetTypes()

            .Where(type => !String.IsNullOrEmpty(type.Namespace))

            .Where(type => type.BaseType != null && type.BaseType.IsGenericType && type.BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>));

            foreach (var type in typesToRegister)

            {

                dynamic configurationInstance = Activator.CreateInstance(type);

                modelBuilder.Configurations.Add(configurationInstance);

            };

找到實作了某個類的子類類型合集,

本人在長沙, 有工作可以加我QQ4658276