我试图弄清楚如何使用 Simple Injector,我已经在项目中使用它,注册简单服务及其组件没有问题。
但是,当组件具有两个以上实现接口的构造函数时,我想使用依赖注入器。
public DAL: IDAL
{
private Logger logger;
string _dbInstance;
public DAL()
{
logger = new Logger();
}
public DAL(string databaseInstance)
{
logger = new Logger();
_dbInstance = databaseInstance;
}
}
这是我注册服务的方式:
container.Register<IDAL, DAL>();
运行代码,这是发生的错误:
对于能够创建 DAL 的容器,它应该只包含一个公共构造函数,但它有 2 个。
删除构造函数后,下一个错误是它不允许我的构造函数接受参数。
DAL 类型的构造函数包含不能用于构造函数注入的 String 类型的参数“databaseInstance”。
有什么方法可以在类有超过 2 个公共构造函数的情况下进行依赖注入?或者有一个接受参数的公共构造函数?
我在这里阅读了文档:SimpleInjector(入门)
该文档一开始很容易理解,但它变得非常复杂,如果他们提到的后面的任何例子与我的问题有关,我很难理解。