Нет, только атрибуты времени компиляции, такие как константы, могут быть предоставлены. Это ограничение применяется ко всем атрибутам C # и не относится к атрибутам аннотаций данных, но в случае StringLengthAttribute
подразумевает, что есть способ предоставить другую длину во время выполнения.
Вам потребуется использовать другой вид проверки или, возможно, создать собственный атрибут, наследующий от StringLengthAttribute
, который принимает Type
и имя метода этого типа в качестве источника значения длины. Этот подход будет аналогичен тому, который используется CustomValidationAttribute
, который принимает имена ValidatorType
и Method
в качестве источников для проверки.