Sobes.tech
Junior — Middle

W jaki sposób można dodatkowo rozszerzyć funkcjonalność kontrolera?

sobes.tech AI

Odpowiedź od AI

W C# kontrolery (np. w ASP.NET Core) można rozszerzać na kilka sposobów:

  • Dziedziczenie: utwórz klasę, która dziedziczy po bazowym kontrolerze i dodaje lub nadpisuje metody.
  • Filtry: użyj atrybutów filtrów (np. ActionFilter, AuthorizationFilter), aby dodać logikę przed lub po wykonaniu akcji kontrolera.
  • Middleware: dodaj middleware, które obsługuje żądania przed dotarciem do kontrolera.
  • Metody rozszerzające: dodaj metody rozszerzające dla kontrolera lub jego klasy bazowej.
  • Wstrzykiwanie zależności: podłącz dodatkowe serwisy, które rozszerzają funkcjonalność.

Przykład użycia filtra:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // Logika przed wykonaniem akcji
        base.OnActionExecuting(context);
    }
}

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