Пользовательский атрибут C# для отключения контроллеров ⇐ C#
-
Anonymous
Пользовательский атрибут C# для отключения контроллеров
У меня есть приложение asp.Net Core WebAPI, я создал универсальный пользовательский класс базового контроллера, который уже предоставляет операции CRUD (GetAll, GetById, Insert, Update и Delete) для любого контроллера, который унаследован.
В некоторых моих контроллерах мне приходится отключать некоторые методы. Конечно, я мог бы использовать для этого атрибут [nonaction]. Но что я действительно хочу сделать, так это реализовать атрибут и применить его к моему контроллеру, чтобы отключить серию методов. Возможно ли это вообще? Ваша помощь будет оценена по достоинству!
Вот немного моего кода:
публичный интерфейс IBaseService где T : DomainObject { Task GetAllAsync (запрос BaseRequestViewModel); Task GetByIdAsync(int id); Task InsertAsync (Tentity); Task UpdateAsync(Tentity); Task DeleteAsync(int id);} и мой собственный базовый контроллер выглядит следующим образом:
публичный класс ProcessMiningControllerBase: ControllerBase, где T: DomainObject{ частный только для чтения IBaseService _baseService; public ProcessMiningControllerBase (IBaseService baseService) { _baseService = baseService; } [HttpPost] общедоступная виртуальная асинхронная задача GetAllAsync (запрос BaseRequestViewModel) { возвращение ждут _baseService.GetAllAsync(запрос); } [HttpGet("{id}")] общедоступная виртуальная асинхронная задача GetByIdAsync(int id) { return await _baseService.GetByIdAsync(id); } [HttpPost] общедоступная виртуальная асинхронная задача InsertAsync (Tentity) { возвращение ждут _baseService.InsertAsync(entity); } [HttpPut] общедоступная виртуальная асинхронная задача UpdateAsync (Tentity) { возвращение ждут _baseService.UpdateAsync(entity); } [HttpDelete("{id}")] общедоступная виртуальная асинхронная задача DeleteAsync (int id) { return await _baseService.DeleteAsync(id); }}
У меня есть приложение asp.Net Core WebAPI, я создал универсальный пользовательский класс базового контроллера, который уже предоставляет операции CRUD (GetAll, GetById, Insert, Update и Delete) для любого контроллера, который унаследован.
В некоторых моих контроллерах мне приходится отключать некоторые методы. Конечно, я мог бы использовать для этого атрибут [nonaction]. Но что я действительно хочу сделать, так это реализовать атрибут и применить его к моему контроллеру, чтобы отключить серию методов. Возможно ли это вообще? Ваша помощь будет оценена по достоинству!
Вот немного моего кода:
публичный интерфейс IBaseService где T : DomainObject { Task GetAllAsync (запрос BaseRequestViewModel); Task GetByIdAsync(int id); Task InsertAsync (Tentity); Task UpdateAsync(Tentity); Task DeleteAsync(int id);} и мой собственный базовый контроллер выглядит следующим образом:
публичный класс ProcessMiningControllerBase: ControllerBase, где T: DomainObject{ частный только для чтения IBaseService _baseService; public ProcessMiningControllerBase (IBaseService baseService) { _baseService = baseService; } [HttpPost] общедоступная виртуальная асинхронная задача GetAllAsync (запрос BaseRequestViewModel) { возвращение ждут _baseService.GetAllAsync(запрос); } [HttpGet("{id}")] общедоступная виртуальная асинхронная задача GetByIdAsync(int id) { return await _baseService.GetByIdAsync(id); } [HttpPost] общедоступная виртуальная асинхронная задача InsertAsync (Tentity) { возвращение ждут _baseService.InsertAsync(entity); } [HttpPut] общедоступная виртуальная асинхронная задача UpdateAsync (Tentity) { возвращение ждут _baseService.UpdateAsync(entity); } [HttpDelete("{id}")] общедоступная виртуальная асинхронная задача DeleteAsync (int id) { return await _baseService.DeleteAsync(id); }}
Мобильная версия