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();
}
}