GlueViewOfficialPlugins.Scripting.MethodCallParser.EvaluateCreateNewInstance C# (CSharp) Method

EvaluateCreateNewInstance() private method

private EvaluateCreateNewInstance ( NCalc.FunctionArgs args, object>.List localVariableStack, List dotOperatorStack ) : void
args NCalc.FunctionArgs
localVariableStack object>.List
dotOperatorStack List
return void
        private void EvaluateCreateNewInstance(FunctionArgs args, List<Dictionary<string, object>> localVariableStack, List<object> dotOperatorStack)
        {
            string typeAsString = args.Parameters[0].ParsedExpression.ToString();
            typeAsString = typeAsString.Substring(1, typeAsString.Length - 2);

            Type type = TypeManager.GetTypeFromString(typeAsString);
            int constructorParameterCount = args.Parameters.Length - 1;
            object[] constructorParameters;

            constructorParameters = new object[constructorParameterCount];

            for (int i = 0; i < constructorParameterCount; i++)
            {
                constructorParameters[i] = args.Parameters[i + 1].Evaluate();
            }
            
            object toReturn = Activator.CreateInstance(type, constructorParameters);

            args.Result = toReturn;
        }