2014-09-30 4 views
1

Я использую контроллер asp.net mvc с введенной конструктором услугой IMyService. MyService (реализует IMyService) использует в своем конструкторе некоторую контекстуальную информацию. Эта контекстная информация предоставляется на другом стороннем веб-сайте. Контекстная информация необходима для создания экземпляра MyService.ASP.NET MVC DI с фильтром действия контроллера

Фильтр действия контроллера использует некоторую логику, чтобы определить, доступна ли эта контекстуальная информация. Если нет, запрос перенаправляется на другой веб-сайт. Проблема в том, что конструктор контроллера вызывается контейнером IoC перед фильтром контроллера. В результате MyService выдает исключение, если контекстная информация не предоставляется.

Как обходиться в этой ситуации?

UPD:
Кажется, что DelegatingHandler это путь.

ответ

1

Если вам нужно быстрое обходное решение, вы можете использовать команду IMyService от своего конструктора и вместо этого добавить его как свойство своего контроллера и использовать локатор сервисов IoCs для его решения, когда это необходимо с помощью метода в контроллере.

+0

Для этого мне нужно ввести контейнер в конструктор, это не очень хорошая идея, я думаю. Но, возможно, это возможно только в случае обходного пути. – Kai

Смежные вопросы