Crear una clase de RouteBase personalizada

Quiero saber cuál es la función deHttpContext.Request.AppRelativeCurrentExecutionFilePath en el siguiente código. Por favor, explique cómo el sistema de enrutamiento coincide con la url solicitada:

public override RouteData GetRouteData(HttpContextBase httpContext) 
{
    RouteData result = null; 
    string requestedURL = string.Empty; 

    for (int i = 0; i < urls.Length; i++) 
    {                   
        if(httpContext.Request.AppRelativeCurrentExecutionFilePath.Contains(urls[i])) 
        { 
            requestedURL = httpContext.Request.AppRelativeCurrentExecutionFilePath; 
            break; 
        } 
    }     

    if (!string.IsNullOrEmpty(requestedURL)) 
    {
        result = new RouteData(this, new MvcRouteHandler()); 
        result.Values.Add("controller", "CustomRoute"); 
        result.Values.Add("action", "DirectCustomUrls"); 
        result.Values.Add("customUrl", requestedURL); 
    }

    return result; 
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta