2015-05-22 3 views
0

У нас есть существующий пользовательский класс, который наследуется от ValidationAttribute. Этот класс выполняет некоторую базовую проверку значений enum в наших классах моделей данных C#.Получить тип перечисления внутри атрибута пользовательского свойства

Конструктор класса атрибута принимает параметр типа, который предназначен для соответствия типу поля, к которому применяется атрибут.

Я хотел бы получить тип поля, на котором есть атрибут, без необходимости передавать его в качестве параметра атрибуту.

Это что-то, что можно сделать легко?

+5

Можете ли вы оставить фрагмент кода, чтобы мы могли лучше понять, что ваш запрос ? – t3dodson

+0

Вы пытались использовать 'typeof (fieldObject)'? – Alexandru

ответ

1

Вы не можете сделать это в пределах атрибута легко. У вас должно быть use reflection to get the class и его свойства, которые украшены атрибутом, и оттуда у вас есть доступ к обоим. Из кода атрибутов вы не знаете, какой объект (ы) является его целью, и поэтому не можете получить доступ к их PropertyInfo s

+0

, но для этого вам нужен уже существующий дескриптор типа ..., который вы, кажется, соглашаетесь, невозможно изнутри атрибута. – DrewJordan

3

Это что-то, что можно сделать легко?

Нет, это то, что нельзя сделать вообще, к сожалению. Атрибут не имеет доступа к члену, на котором он применяется.

Смежные вопросы