示例#1
0
        public static Dictionary <string, RuntimeValue> ExtractVariables(string script, IOperationExecutionContext context)
        {
            var vars    = ExtractVariablesInternal(script);
            var results = new Dictionary <string, RuntimeValue>(StringComparer.OrdinalIgnoreCase);

            foreach (var var in vars)
            {
                if (RuntimeVariableName.IsLegalVariableName(var))
                {
                    var varName  = new RuntimeVariableName(var, RuntimeValueType.Scalar);
                    var varValue = context.TryGetVariableValue(varName) ?? TryGetFunctionValue(varName, context);
                    if (varValue.HasValue)
                    {
                        results[var] = varValue.Value;
                    }
                }
            }

            return(results);
        }