我使用Castle Windsor作为依赖注入机制,但我遇到了问题。我使用构造函数注入类型,这个方法运行良好。
但是,当我声明其他类的构造函数时,我需要调用默认构造函数,这时依赖注入魔法就会发生。
因此,我有以下代码:
但是,当我声明其他类的构造函数时,我需要调用默认构造函数,这时依赖注入魔法就会发生。
因此,我有以下代码:
private readonly IUserService UserService = null;
public CustomAccessAttribute(IUserService userService)
{
this.UserService = userService;
}
public CustomAccessAttribute(bool someParam) : this() //here I'd like to call the above constructor
{
....
}
但是我遇到了错误:
构造函数 'CustomAccessAttribute.CustomAccessAttribute(bool)' 不能调用自身
我不想在 this()
调用中手动放置 userService
对象,因为依赖注入容器应该负责这个。那么,我该如何修复此错误?
this()
将无法工作。 - Yuval ItzchakovIUserService
的构造函数,你需要提供一个实例,或让 DI 这样做。一旦已经调用了构造函数,DI 就无法帮助你处理其他构造函数的问题了。 - Asad Saeeduddin