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