[英]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.