Пользовательский атрибут ValidationAttribute для необязательного <T>объекта в ASP. Net Core - PullRequest
0 голосов
/ 15 января 2020

В моем ASP. Net Core Web API я использую пользовательский struct Optional<T> (беззастенчиво скопированный с https://github.com/discord-net/Discord.Net/blob/dev/src/Discord.Net.Core/Utils/Optional.cs), который я использую для частичных PATCH полезных нагрузок.

Теперь я хочу реализовать пользовательский ValidationAttribute, который бы позволял проверять значения, отличные от null.

Однако всякий раз, когда я добавляю any ValidationAttribute (например, [Required], например), при привязке модели я получаю сообщение об ошибке, поскольку метод получения Value типа Optional<T> возвращает исключение при попытке получить значение неустановленного свойства. Эта ошибка возникает за до удара по атрибуту ValidationAttribute, поэтому я не могу проверить или нет.

В качестве альтернативного / временного решения я могу проверить модель, используя IValidatableObject, но я лучше использовать атрибуты, если это возможно ...

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