예제 #1
0
 /// <summary>
 /// 通过对应的数据获取到值
 /// </summary>
 /// <param name="httpContext"></param>
 /// <returns></returns>
 public RouteData GetRouteData(TransferBaseContext httpContext)
 {
     if (!String.IsNullOrWhiteSpace(ignore) && Regex.IsMatch(httpContext.Request.Url.ToString(), ignore))
     {
         return(null);
     }
     foreach (var route in this.Values)
     {
         RouteData routeData = route.GetRouteData(httpContext);
         if (routeData != null)
         {
             return(routeData);
         }
     }
     return(null);
 }
예제 #2
0
        public void Init(TransferBaseContext context)
        {
            RouteData routeData = RouteTable.Routes.GetRouteData(context);

            if (routeData == null)
            {
                return;
            }
            RequestContext request = new RequestContext()
            {
                Context   = context,
                RouteData = routeData
            };
            IApiHandler handler = routeData.RouteHandler.GetApiHandler(request);

            handler.ProcessRequest();
        }
예제 #3
0
        public override RouteData GetRouteData(TransferBaseContext httpContext)
        {
            IDictionary <String, Object> values = null;

            if (IsMatch(httpContext.Request.Path, out values))
            {
                RouteData routeData = new RouteData();
                routeData.RouteHandler = this.RouteHandler;
                foreach (var item in values)
                {
                    routeData.Values.Add(item.Key, item.Value.ToString());
                }
                routeData.QueryString.Add(httpContext.Request.QueryString);
                routeData.Headers.Add(httpContext.Request.Headers);
                routeData.Params.Add(httpContext.Request.Params);
                return(routeData);
            }
            return(null);
        }
예제 #4
0
 public abstract RouteData GetRouteData(TransferBaseContext httpContext);