windsor基于呼叫控制器解决依赖性

时间:2011-06-22 18:43:44

标签: asp.net-mvc dependency-injection castle-windsor

假设我有一个(糟糕的伪代码):

interface IUserService
{
  .... 
  User CreateUser(bunch of parameters)
  ....
}

有一个实现被注入一堆不同的控制器。

具体的UserService注入了

interface IHRService
{
  bool ValidateInfo(user _user)
}

这是用于附加/可选验证,并且至少有2个实现。从UserService的CreateUser函数调用ValidateInfo。我想根据控制器调用UserService将不同的IHRService注入到UserService中 - 这样我就可以从多个不同的屏幕调用相同的CreateUser函数,并且可以跳过其中一个而不是另一个验证。

温莎这样的事情是可能的,还是我错误的做法?我应该在特定控制器内部获得正确的IHRService,然后将其传递给CreateUser函数吗?

1 个答案:

答案 0 :(得分:2)

我不知道我是否理解你,但似乎你可以注入UserService和abstract factory,它会根据运行时的一些选项创建IHRService的混合实现。温莎非常适合抽象工厂处理这些情况。它有意义吗?