예제 #1
0
        protected override Object InExecutive(Interface.WATFDictionary<String, String> attributes)
        {
            object rtn = default(object);
            if (this.context.Assemblys.ContainsKey(attributes[GlobalDefine.Keyword.Executive.From]))
            {
                //执行反射外部函数
                WATF.Plugin.IPlugin reflection = (WATF.Plugin.IPlugin)this.context.Assemblys[attributes[GlobalDefine.Keyword.Executive.From]].CreateInstance(attributes[GlobalDefine.Keyword.Executive.Select]);
                Dictionary<string, object> paramList = GetParamsFromWhere(attributes[GlobalDefine.Keyword.Executive.Where],this.context);
                if (this.context.Results.Count > 0)
                {
                    rtn = reflection.StartMethod(this.context.Results.Peek(), paramList);
                }
                else
                {
                    rtn = reflection.StartMethod(null, paramList);
                }
                if (attributes.ContainsKey(GlobalDefine.Keyword.Executive.Into)
                && !attributes[GlobalDefine.Keyword.Executive.Into].Equals(string.Empty))
                {
                    this.context.SetVar(attributes[GlobalDefine.Keyword.Executive.Into], rtn);
                }
            }
            else//如果没有from关键字,则执行内部函数逻辑
            {

            }
            return rtn;
        }