Как сделать атрибут .NET действительным только для определенных типов
Возможный дубликат:
Укажите необходимый базовый класс для целевых атрибутов .NET
Я хочу указать, что мой пользовательский атрибут действителен только для определенных типов (на основе интерфейса или базового класса).
Вот так:
![attributes]()
Как я могу это сделать?
Ответы
Ответ 1
Похоже, вы хотите создать Attribute
, который может применяться только к определенным типам таким образом, что AttributeUsage
может применяться только к типам, происходящим из Attribute
. Введение такого типа пользовательского ограничения просто невозможно. Особая ошибка, которую вы видите, происходит не из-за пользовательского ограничения, это простое подключение к самому компилятору.
Ответ 2
Я не думаю, что вы можете, вы можете указать только, на каком элементе языка этот атрибут действителен. AttributeUsageAttribute
является особым случаем, поскольку компилятор знает об этом и не позволяет вам применять его к чему-то, что не является атрибутом