Beispiel #1
0
        /// <summary>
        /// Invoke the expression with the given parameters values.
        /// </summary>
        /// <param name="args">Order of parameters must be the same of the parameters used during parse (DeclaredParameters).</param>
        /// <returns></returns>
        public object Invoke(params object[] args)
        {
            var parameters         = new List <Parameter>();
            var declaredParameters = DeclaredParameters.ToArray();

            if (args != null)
            {
                if (declaredParameters.Length != args.Length)
                {
                    throw new InvalidOperationException("Arguments count mismatch.");
                }

                for (var i = 0; i < args.Length; i++)
                {
                    var parameter = new Parameter(
                        declaredParameters[i].Name,
                        declaredParameters[i].Type,
                        args[i]);

                    parameters.Add(parameter);
                }
            }

            return(Invoke(parameters));
        }