Пользовательский атрибут C# для отключения методов в контроллерахC#

Место общения программистов C#
Ответить
Anonymous
 Пользовательский атрибут C# для отключения методов в контроллерах

Сообщение Anonymous »


У меня есть аспид. 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); } }
Ответить

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

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

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

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

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