Настройка контекста проверки для использования контейнера DI - PullRequest
0 голосов
/ 27 марта 2019

Я делаю ASP.NET Web API 2 (т.е. ApiController)

Мы производим от ValidationAttribute для создания пользовательских валидаторов.Наш валидатор нуждается в зависимости.Во время связывания модели ASP автоматически проверяются валидаторы для всех свойств, для которых установлено значение ValidationAttribute.

Я заметил, что validationcontext имеет метод GetService.Но это не работает.Может быть, его нужно настроить, чтобы искать где-то.

A) Мой вопрос: как я могу сказать ASP, что при вызове метода IsValid валидатора, следует использовать конкретную реализацию IServiceProvider внутри validationcontext?

б) Есть ли способ отключить «Авто валидацию» для ValidationAttributes в ASP, которая происходит во время привязки модели?Таким образом, я могу управлять проверкой явно, используя TryValidateObject.

1 Ответ

0 голосов
/ 27 марта 2019

Вы пробовали использовать сервисный фильтр?

[ServiceFilter(typeof(FilterClass))]

Не уверен, что то же самое для asp.net mvc 4, но вот как это делается в ядре asp.net: https://andrewlock.net/injecting-services-into-validationattributes-in-asp-net-core/

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