簡體   English   中英

在Autofac中使用同一接口注冊多個對象

[英]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...*/
};

XYZManagerLoggerRepository使用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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM