Sobes.tech
Junior — Middle

როგორ შეიძლება კონტროლერის ფუნქციონალი დამატებით გავაფართოოთ?

sobes.tech AI

პასუხი AI-სგან

C#-ში კონტროლერები (მაგალითად, ASP.NET Core-ში) შეიძლება გაფართოვდეს რამდენიმე გზით:

  • მემკვიდრეობა: შექმენით კლასი, რომელიც მემკვიდრეობით იღებს ბაზის კონტროლერს და დამატებით ან გადაფარავს მეთოდებს.
  • ფილტრები: გამოიყენეთ ფილტრის ატრიბუტები (მაგალითად, ActionFilter, AuthorizationFilter) რათა დაამატოთ ლოგიკა კონტროლერის მოქმედებების დაწყებამდე ან დასრულების შემდეგ.
  • მესიჯის შუამავალი (Middleware): დაამატეთ შუამავალი, რომელიც პროცესავს მოთხოვნებს კონტროლერის მისვლამდე.
  • გაფართოების მეთოდები: დაამატეთ გაფართოების მეთოდები კონტროლერის ან მისი ბაზის კლასისთვის.
  • მომსახურებების ინექცია: მიერთეთ დამატებითი სერვისები, რომლებიც ამდიდრებს ფუნქციონალს.

ფილტრის გამოყენების მაგალითი:

public class LogActionFilter : ActionFilterAttribute
{
    public override void OnActionExecuting(ActionExecutingContext context)
    {
        // მოქმედების დაწყებამდე ლოგიკა
        base.OnActionExecuting(context);
    }
}

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