我在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类的构造函数
答案 0 :(得分:1)
注册ITableType
的实现者后,您可以像这样定义构造函数...
public XYZManager(ITableType[] handlers, /* other params... */)
{
}
和Autofac将为您提供一个包含每个已注册ITableType
个对象的数组。