Задать допустимый тип для аттрибута
Можно ли в пользовательском аттрибуте указать допустимые типы к которым он может применяться ?
К примеру у меня есть класс с рядом полей, некоторые int, некоторые bool и мй пользовательский аттрибут. Я хочу что бы при его применении к полям типизированным int, программа компилировалась, а если его же применить к типу bool - программа выдвавлв бы ошибку компиляции.
Для наглядности вот пример чего я хочу добиться:
[AttributeUsage(AttributeTargets.Field | AttributeTargets.Property, AllowMultiple = false, Inherited = false)]
public class MyTypeFilterAttribute : System.Attribute
{
public MyTypeFilterAttribute(Type t) { }
}
class MyClass
{
[MyTypeFilter(typeof(int))]
int Correct;
[MyTypeFilter(typeof(bool))]
bool CorrectToo;
[MyTypeFilter(typeof(int))]
bool CompilationError;
}