Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc windsor基于调用控制器解决依赖关系_Asp.net Mvc_Dependency Injection_Castle Windsor - Fatal编程技术网

Asp.net mvc windsor基于调用控制器解决依赖关系

Asp.net mvc windsor基于调用控制器解决依赖关系,asp.net-mvc,dependency-injection,castle-windsor,Asp.net Mvc,Dependency Injection,Castle Windsor,假设我有一个(蹩脚的伪代码): 一个实现被注入到一堆不同的控制器中 具体的UserService注入了 interface IHRService { bool ValidateInfo(user _user) } 这用于附加/可选验证,至少有2个实现。ValidateInfo是从UserService的CreateUser函数调用的。我想根据控制器调用UserService的内容将不同的IHRService注入UserService,这样我就可以从多个不同的屏幕调用相同的CreateUse

假设我有一个(蹩脚的伪代码):

一个实现被注入到一堆不同的控制器中

具体的UserService注入了

interface IHRService
{
  bool ValidateInfo(user _user)
}
这用于附加/可选验证,至少有2个实现。ValidateInfo是从UserService的CreateUser函数调用的。我想根据控制器调用UserService的内容将不同的IHRService注入UserService,这样我就可以从多个不同的屏幕调用相同的CreateUser函数,并能够跳过其中一个屏幕中的附加验证,而不是另一个屏幕中的验证


温莎有可能发生这样的事情吗?还是我走错了方向?我是否应该在特定控制器中获得正确的IHRService,然后将其传递到CreateUser函数中?

我不知道是否理解您的意思,但您似乎可以将其注入UserService,并根据运行时的某些选项创建IHRService的具体实现。温莎与抽象工厂打交道非常好。这有意义吗?

是的-谢谢你给我指明了正确的方向。我最后做的是使用“UsingFactoryMethod”,然后检查creationcontext中的名称空间(我的mvc应用程序中的一个“区域”),然后根据该名称空间返回正确的实现。谢谢
interface IHRService
{
  bool ValidateInfo(user _user)
}