Пример #1
0
        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));
        }
Пример #2
0
 /// <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;
 }