Я пишу атрибут (это ValidatorAttribute), который в настоящее время имеет
[AttributeUsage(AttributeTargets.Property)]
, который ограничивает тип конструкции, в которую можно поместить атрибут.Его можно применить к любому свойству, которое может существовать.
Мне интересно, есть ли атрибут, ограничивающий Type
свойства, к которому этот атрибут может быть применен.Я хочу ограничить его использование в DateTime
свойствах.
Я вижу несколько вариантов, но они не идеальны:
- Я могу игнорировать экземпляратрибут, проверяя тип внутри атрибута, но разработчик не указывает, что атрибут ничего не делает
- Я могу выдать исключение, если
Type
неверен, но по очевидным причинам этопросто плохая идея.
В идеале я получаю ошибку времени компиляции, как если бы я поместил этот атрибут на что-либо, кроме свойства:
Атрибут не являетсядопустимо в этом типе объявления.Он действителен только для объявлений 'property, indexer'.
Я не ожидаю, что такой атрибут существует, но я счастлив, что ошибаюсь.В качестве альтернативы кто-нибудь написал такой атрибут (это вообще возможно?) Или какие-либо предлагаемые альтернативы?