[英]Registering multiple objects with same interface in Autofac
我在XYZManager
類的構造函數中調用以下代碼,該應用程序正在運行。
var handlers = new ITableType[]
{
new AbcHandler(new Logger(), new Repository()),
new OtherHandler(new Logger(), new Repository())
/*etc...*/
};
XYZManager
, Logger
和Repository
使用Autofac在我的應用程序中注冊。
問題是,當我上線時,我將有大約25個處理程序,因此非常想擁有一種更具可維護性的代碼...
我希望我能夠解釋我的問題。
編輯:我想知道的是如何在autofac中注冊我的處理程序,以及需要對上述代碼進行哪些更改。
我想我可以像這樣注冊每個處理程序:
builder.RegisterType<AbcHandler>().As<ITableType>()
但是如何更改XYZManager類的構造函數
注冊ITableType
的實現者ITableType
,可以像下面這樣定義您的構造函數。
public XYZManager(ITableType[] handlers, /* other params... */)
{
}
Autofac將為您提供一個包含每個已注冊ITableType
對象之一的數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.