В моем 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
, но я лучше использовать атрибуты, если это возможно ...