Передача данных экземпляра объекта для атрибута
-
21-09-2019 - |
Вопрос
Я хотел бы передать определенные данные из экземпляра объекта в его атрибут, и у меня возникают проблемы с тем, как их реализовать. Вот образец:
[AuthenticateAttribute]
public class MyController: Controller
{
UserInfo info;
}
Идея в том, что AuthenticateAttribute
Экземпляр заполнит экземпляр пользователя.
Я хочу передать ссылку на info
к примеру AuthenticateAttribute
и тем самым устраняют сильную связь между атрибутом и конкретным MyController
учебный класс.
Это возможно?
Решение
Сам атрибут не должен иметь UserInfo
поле Имо. Имейте в виду, что будет один экземпляр атрибута для тип Это применяется - не один на экземпляр такого типа.
Если бы вы могли привести более полный пример (показывая код, к которому он применяется), мы можем помочь больше ...
Другие советы
Коллекция ViewData контроллера доступна из атрибута, и вы можете добавить к нему свой объект userInfo, а затем получить к нему доступ в аспекты контроллера. Вы также можете использовать типичную модель, содержащую userinfo. Этот сценарий описан здесь Получить разрешение от атрибута авторизации?
Изменение полей типа в атрибуте, применяемых к нему, не является обычным явлением, и вы должны быть очень осторожными.