Пользовательский ActionInvoker и пользовательский FilterProvider для внедрения зависимостей ActionFilter в MVC 3 - PullRequest
7 голосов
/ 20 ноября 2011

Может ли кто-нибудь пролить свет на преимущества и недостатки использования пользовательского ActionInvoker , например, , для выполнения внедрения зависимостей в пользовательские ActionFilters вместо использования пользовательского FilterProvider , как показано здесь ?

В обоих случаях вы все равно захотите избежать внедрения конструктора в свои ActionFilters, и мне кажется, что все, что делает пользовательский FilterProvider в этом случае, добавляет дополнительные издержки, связанные с необходимостью регистрации ваших ActionFilters и провайдера в вашем контейнере. .

1 Ответ

4 голосов
/ 20 ноября 2011

Большим преимуществом поставщиков фильтров является то, что они позволяют инжектировать конструктор, если все сделано правильно.Приведенный вами пример не демонстрирует это правильно.Для использования инжектора конструктора вы не можете использовать атрибуты фильтра.Вместо этого вам нужно разделить две вещи: декларацию о том, что вы хотите применить фильтр (например, с помощью атрибута) и реализацию фильтра.

Я не уверен, есть ли хорошая реализация для Unity.Посмотрите на http://www.planetgeek.ch/2010/11/13/official-ninject-mvc-extension-gets-support-for-mvc3/, как это может ощущаться.Но это пример Ninject.Вероятно, вы можете взять его реализацию на github и перенести его на Unity.

...