Можно ли переопределить атрибут в методе, чтобы использовать его вместо атрибута, примененного к классу?C#

Место общения программистов C#
Ответить
Anonymous
 Можно ли переопределить атрибут в методе, чтобы использовать его вместо атрибута, примененного к классу?

Сообщение Anonymous »

Я создал собственный атрибут. Этот атрибут может быть применен к классу или методу. И в зависимости от параметров он может выполнять разные действия.
Ну, у меня этот атрибут применен к классу с помощью этого [ProAuthorize(Enums.RolesEnum.SuperAdministrador, Enums.RolesEnum.Administrador) ] однако этот же атрибут также определен в методе того же класса, называемом следующим образом: [ProAuthorize(true, true)].
Дело в том, что учитывается только первое определение (на уровне класса), а не определение уровня метода.
При отладке и проверке контекста атрибута Я нашел это:
Изображение

Увидите, что пользовательский атрибут дважды присутствует в метаданные. Первый показанный — тот, который определен на уровне класса, а второй — на уровне метода.
Моим решением может быть использование контекста для получения последнего атрибута, но мне интересно если есть способ, чтобы атрибут появлялся в метаданных только один раз. Таким образом, при вызове метода будет применен правильный атрибут.
Вот как я объявил атрибут:

[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true, AllowMultiple = true)]
публичный класс ProAuthorizeAttribute: Атрибут, IAuthorizationFilter

Спасибо

Подробнее здесь: https://stackoverflow.com/questions/791 ... d-of-the-a
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»