public class OrnekRouteHandler : IRouteHandler { public IHttpHandler GetHttpHandler(RequestContext requestContext) { return new OrnekHandler(requestContext); } }Gördüğünüz gibi “OrnekRouteHandler” sınıfı “IRouteHandler” interfaceini uygulayan bir sınıftır ve birazdan oluşturacağımız route şemasına talep gönderildiği zaman tetiklenecektir. Dikkat ederseniz bu tetiklenme neticesinde “OrnekHandler” sınıfından bir nesne oluşturmakta ve geriye return etmektedir. Şimdi bu sınıfımızı oluşturalım.
public class OrnekHandler : IHttpHandler { public RequestContext RequestContext { get; set; } public OrnekHandler() { } public OrnekHandler(RequestContext RequestContext) { this.RequestContext = RequestContext; } public bool IsReusable { get; } public void ProcessRequest(HttpContext context) { //Gelen talebin işlenmesi/işlemleri } }“OrnekHandler” sınıfı ise “IHttpHandler” interfaceini uygulayan bir sınıftır. Route şemasına gelen talebi karşılayacak olan “OrnekRouteHandler” sınıfının prosedürel işlemlerini üstlenen “OrnekHandler” sınıfı, içerisinde örneği oluşturulduğu “OrnekRouteHandler” sınıfından gönderilmiş ve constructer tarafından elde edilen RequestContext nesnesini kullanarak “ProcessRequest” metodu içerisinde yapılan talebin kaynağı hakkında yahut başka durumlara özel işlemler gerçekleştirebilmektedir. Şunu söylemekte fayda var ki, birazdan oluşturacağımız route şemasını tetiklediğimiz anda Controller ve View olmaksızın “ProcessRequest” metodu tetiklenecek ve istenen ne ise çıktı olarak elde edilecektir. Şimdide bu adımda route şemamızı oluşturalım. “App_Start” klasörü altındaki “RouteConfig.cs” dosyasına aşağıdaki gibi bir route ekliyoruz.
public class RouteConfig { public static void RegisterRoutes(RouteCollection routes) { routes.IgnoreRoute("{resource}.axd/{*pathInfo}"); routes.Add(new Route("laylaylom", new OrnekRouteHandler())); routes.MapRoute( name: "Default", url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); } }