Виндзор разрешить зависимость на основе вызова контроллера - PullRequest
1 голос
/ 22 июня 2011

Допустим, у меня есть (дерьмовый псевдокод):

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

С одной реализацией, которая вставляется в кучу разных контроллеров.

В конкретный UserService вводится

interface IHRService
{
  bool ValidateInfo(user _user)
}

Это для дополнительной / дополнительной проверки и имеет как минимум 2 реализации. ValidateInfo вызывается из функции CreateUser UserService. Я хочу внедрить разные IHRService в UserService в зависимости от того, какой контроллер вызывает UserService - так я могу вызывать одну и ту же функцию CreateUser из нескольких разных экранов и пропустить дополнительную проверку на одном, но не на другом.

Возможно ли что-то подобное с виндзорским или я поступаю неправильно? Должен ли я получить правильный IHRService внутри конкретного контроллера, а затем передать его в функцию CreateUser?

1 Ответ

2 голосов
/ 23 июня 2011

Я не знаю, правильно ли я вас понял, но кажется, что вы можете внедрить в UserService и абстрактную фабрику , которая создает конкретную реализацию IHRService в зависимости от некоторых параметров во время выполнения. Виндзор очень хорошо справляется с абстрактными фабриками для этих сценариев. Имеет ли это смысл?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...