2012-01-10 73 views
0

我正在使用Autofac來註冊我的asp.net mvc 3 web應用程序的控制器。目前我必須加載包含控制器(插件)的DLL,之後我將註冊這些類型。現在,問題來自於我有一個PluginLoader類,它可以處理從程序集加載到類型註冊的所有東西。這個類也註冊在autofac容器中。問題是,如果在解決它之前我該如何使用該類,那麼我必須構建容器?我的意思是,我建autofac容器,我解決了插件加載類,我稱之爲掃描組件,並找到控制器,但隨後的容器alredy內置的方法...當使用autofac初始化類型時,註冊ASP.NET MVC 3控制器

編輯1

插件管理是管理所有插件的基類。它依賴於PluginLoader類,該類基本上使用Assembly.Load方法加載程序集,並掃描DLL以搜索MVC控制器。這些類在autofac容器中被註冊爲單例。現在,PluginLoader也應該向autofac註冊控制器。但在調用此方法之前,我必須從容器中解析PluginManager類,這是問題所在。它似乎是一個「循環依賴」或類似的東西。在我解決插件管理的時間容器alredy內置

+0

但是你應該能夠添加綁定,即使容器已經初始化了 – 2012-01-10 20:22:02

+0

,但我知道這不是最佳實踐。不鼓勵這樣做,只有極少數情況下,在構建它之後應該更新容器(這是寫在autofac文檔中的內容) – Stefano 2012-01-10 20:24:21

+0

這就是我想問你的原因,爲什麼當你有構建依賴時DI框架到位了? – 2012-01-10 20:26:26

回答

0

PluginLoader聽起來就像是你的引導程序的一部分 - 嘗試使PluginLoaderModule(一Autofac類)派生,然後註冊與容器的模塊。該模塊可以在其Load()方法中封裝插件加載邏輯。