2014-09-10 102 views
0

我在調用XYZManager類的構造函數中的下面的代碼,並且該應用程序正在運行。在Autofac中註冊具有相同接口的多個對象

var handlers = new ITableType[] 
{ 
    new AbcHandler(new Logger(), new Repository()), 
    new OtherHandler(new Logger(), new Repository()) 
    /*etc...*/ 
}; 

XYZManagerLoggerRepository使用Autofac登記在我的應用程序。

的問題是,我將有大約25處理器時我去住,因此很想辦法有一個更易於維護的代碼......

我希望我已經能夠解釋我的問題。

編輯:我想知道的是如何註冊我的處理程序autofac,做什麼樣的變化,我需要讓我的上述代碼..

我想我可以每個處理器的寄存器:

builder.RegisterType<AbcHandler>().As<ITableType>()

但是我怎麼改變我的XYZManager類的構造函數

+0

您可能要嘗試http://codereview.stackexchange.com/ – Paddy 2014-09-10 19:30:38

+0

已添加更多信息.. – Arnab 2014-09-12 05:50:04

+0

@Paddy codereview聲明:徵求關於尚未編寫代碼的建議是無關緊要的,因爲代碼尚未準備就緒評論。 – Arnab 2014-09-12 06:32:53

回答

1

您註冊的ITableType您的實現者後,您可以定義構造函數是這樣的...

public XYZManager(ITableType[] handlers, /* other params... */) 
{ 

} 

和Autofac會給你所註冊的每個ITableType對象的一個​​數組。

+0

你能否看看這個問題:http://stackoverflow.com/questions/25709577/scope-and-resolve-in-autofac Tx – Arnab 2014-09-24 11:52:01

相關問題