コード例 #1
0
        protected void evaluatScriptArguments(ESObjectSpace objectSpace, NamespaceObject environment)
        {
            var argList = new List <Object>();

            foreach (var argSpec in scriptArguments)
            {
                try {
                    Object   value;
                    FileInfo scriptPath;
                    if (argSpec.SpecifiesPathname)
                    {
                        if (objectSpace.pathForScript(argSpec.Value, out scriptPath))
                        {
                            if (objectSpace.evaluate(scriptPath, environment, null, null, out value))
                            {
                                argList.Add(value);
                            }
                            else
                            {
                                errors.Add("Syntax error in script used as argument, pathname = " + argSpec.Value);
                            }
                        }
                        else
                        {
                            errors.Add("Script path (used as argument to base script) not found: " + argSpec.Value);
                        }
                    }
                    else if (objectSpace.evaluate(new StringReader(argSpec.Value), environment, null, null, out value))
                    {
                        argList.Add(value);
                    }
                    else
                    {
                        errors.Add("Syntax error in argument: " + argSpec.Value);
                    }
                } catch (Exception ex) {
                    errors.Add("Error in argument evaluation: " + ex.ToString());
                }
            }
            scriptArgs = argList.ToArray();
        }