ограничение типа свойства настраиваемого атрибута - PullRequest
5 голосов
/ 25 апреля 2010

Кто-нибудь знает, возможно ли определить / объявить для вашего собственного пользовательского атрибута ограничение на тип поля, к которому он может применяться? Есть флаги, которые ограничивают использование атрибута:

[AttributeUsage(
 AttributeTargets.Property,
 AllowMultiple = false)]

Я ищу что-то вроде:

UseOnlyOnType = typeof(string)

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 25 апреля 2010

Это невозможно напрямую.

Но так как вы должны написать код для использования атрибута (сами по себе они являются просто неиспользуемыми метаданными), этот код может работать, проверяя только ваш атрибут, когда тип поля равен string.

3 голосов
/ 25 апреля 2010

Нет способа, чтобы компилятор проверил это за вас - лучшим вариантом будет проверка во время выполнения поля с отражением.

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