internal static BaseStruct FindRoute(string typeExpression, HttpGet httpGet, int actionID) { string typeName = string.Format(typeExpression, actionID); ScriptRoute scriptRoute = new ScriptRoute(actionID); RouteItem routeItem; var pythonManager = PythonScriptManager.Current; if (pythonManager.TryGetAction(actionID, out routeItem)) { if (scriptRoute.TryLoadAction(routeItem.ScriptPath)) { return(new ScriptAction((short)actionID, httpGet, scriptRoute, routeItem.IgnoreAuthorize)); } //中间件路由配置 if (!string.IsNullOrEmpty(routeItem.TypeName)) { typeName = routeItem.TypeName; } } Type actionType = null; try { actionType = Type.GetType(typeName); } catch { } if (actionType != null) { return((BaseStruct)Activator.CreateInstance(actionType, new object[] { httpGet })); } throw new NullReferenceException(string.Format("未找到Action处理对象的类型:{0}!", typeName)); }
/// <summary> /// / /// </summary> /// <param name="aActionId"></param> /// <param name="httpGet"></param> /// <param name="scriptRoute"></param> /// <param name="ignoreAuthorize">忽略授权</param> public ScriptAction(short aActionId, HttpGet httpGet, ScriptRoute scriptRoute, bool ignoreAuthorize) : base(aActionId, httpGet) { _scriptRoute = scriptRoute; _ignoreAuthorize = ignoreAuthorize; }