Sobes.tech
Junior — Middle

De que formas é que se pode expandir adicionalmente a funcionalidade do controlador?

sobes.tech IA

Resposta da IA

Em C#, os controladores (por exemplo, no ASP.NET Core) podem ser estendidos de várias maneiras:

  • Herança: criar uma classe que herda do controlador base e adiciona ou substitui métodos.
  • Filtros: usar atributos de filtros (por exemplo, ActionFilter, AuthorizationFilter) para adicionar lógica antes ou depois da execução das ações do controlador.
  • Middleware: adicionar middleware que processa as solicitações antes de chegarem ao controlador.
  • Métodos de extensão: adicionar métodos de extensão ao controlador ou à sua classe base.
  • Injeção de dependências: conectar serviços adicionais que ampliam a funcionalidade.

Exemplo de uso de um filtro:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // Lógica antes de executar a ação
        base.OnActionExecuting(context);
    }
}

[LogActionFilter]
public class MyController : Controller
{
    public IActionResult Index()
    {
        return View();
    }
}