コード例 #1
0
        protected virtual void Function(TemplateContext context, string ns, string name, JObject function)
        {
            if (!TryObjectProperty(function, PROPERTY_OUTPUT, out JObject output))
            {
                return;
            }

            TryArrayProperty(function, PROPERTY_PARAMETERS, out JArray parameters);
            //var outputFn = context.Expression.Build(outputValue);
            ExpressionFn fn = (ctx, args) => {
                var fnContext = new UserDefinedFunctionContext(ctx);
                fnContext.SetParameters(parameters, args);
                return(UserDefinedFunction(fnContext, output[PROPERTY_VALUE]));
            };

            context.Function(ns, name, fn);
        }
コード例 #2
0
 public FunctionDescriptor(string name, ExpressionFn fn, bool delayBinding = false)
 {
     Name         = name;
     Fn           = fn;
     DelayBinding = delayBinding;
 }
コード例 #3
0
 public FunctionDescriptor(string name, ExpressionFn fn)
 {
     Name = name;
     Fn   = fn;
 }
コード例 #4
0
            internal void Function(string ns, string name, ExpressionFn fn)
            {
                var descriptor = new FunctionDescriptor(string.Concat(ns, ".", name), fn);

                _ExpressionFactory.With(descriptor);
            }