예제 #1
0
        public bool TryGetFunction(Type apiFunctionType, out IApiFunc result)
        {
            if (!_flattenFunctions.TryGetValue(apiFunctionType, out var value))
            {
                result = null;
                return(false);
            }

            result = value;
            return(true);
        }
예제 #2
0
        public bool TryGetFunctionInfo(IApiFunc func, out FunctionInfo actualFunctionInfo)
        {
            var funcInfo = new FunctionInfo(func.ClassName, func.Name);
            var that     = this;

            do
            {
                if (that._functions.TryGetValue(funcInfo, out actualFunctionInfo))
                {
                    return(true);
                }
            } while ((that = that.Parent) != null);

            return(false);
        }
예제 #3
0
 public virtual bool TryGetFunction(string functionName, out IApiFunc result)
 {
     result = Functions.FirstOrDefault(x => x.Name == functionName);
     return(result != null);
 }
예제 #4
0
 public ApiFunctionInfo(TypeDescriptor typeDescriptor, string name, string reName, string className, IApiFunc function, bool isParams,
                        FunctionParameterDefinitionStatement[] parameters, bool byPassParameterValidation = false)
     : base(typeDescriptor, name, reName, className, isParams, parameters, null, byPassParameterValidation)
 {
     Function = function;
 }