public override VirtualPathData GetVirtualPath(RequestContext requestContext, RouteValueDictionary values) { if (!DataTokens.ContainsKey(Consts.RouteServiceKey)) { throw new InvalidOperationException("DataTokens must contain RouteServiceKey in service routing"); } if (!values.ContainsKey(Consts.RouteServiceKey) && !requestContext.RouteData.DataTokens.ContainsKey(Consts.RouteServiceKey)) { return(null); } if (values.ContainsKey(Consts.RouteExternalService)) { return(null); } if (DataTokens[Consts.RouteServiceKey] != values[Consts.RouteServiceKey] && DataTokens[Consts.RouteServiceKey] != requestContext.RouteData.DataTokens[Consts.RouteServiceKey]) { return(null); } var tmpValues = new RouteValueDictionary(values); tmpValues.Remove(Consts.RouteServiceKey); return(base.GetVirtualPath(requestContext, tmpValues)); }
public override RouteData GetRouteData(HttpContextBase httpContext) { if (!DataTokens.ContainsKey(Consts.RouteServiceKey)) { throw new InvalidOperationException("DataTokens must contain RouteServiceKey in service routing"); } return(base.GetRouteData(httpContext)); }
public string this[string key] { get { if (DataTokens.ContainsKey(key)) { return(DataTokens[key]); } return(null); } set { DataTokens[key] = value; } }