Пользовательский атрибут C# для отключения методов в контроллерах ⇐ C#
-
Anonymous
Пользовательский атрибут C# для отключения методов в контроллерах
У меня есть аспид. 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); } и мой собственный базовый контроллер выглядит следующим образом:
public class 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); } }
У меня есть аспид. 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); } и мой собственный базовый контроллер выглядит следующим образом:
public class 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); } }
Мобильная версия