Exemplo n.º 1
0
        private void ScriptInString()
        {
            Console.WriteLine("Running script from string...");

            var code = @"
            class script2class:
            def Goodbye(self):
            message = 'Goodbye via the script!'
            return message
            def GoodbyeWithName(self, name):
            message = 'Goodbye ' + name
            return message
            def GoodbyeWithPerson(self, person):
            message = 'Goodbye ' + person.Name
            return message";

            var compiled = new Script();
            compiled.InitializeFromString(code);
            Console.WriteLine(compiled.Execute<string>("script2class", "Goodbye"));

            // single param call
            Console.WriteLine(compiled.Execute<string>("script2class", "GoodbyeWithName", "Paulo"));

            // pass instance of complex type
            var person = new Person { Name = "Paulo Mouat", Address = "Boston" };
            Console.WriteLine(compiled.Execute<string>("script2class", "GoodbyeWithPerson", person));

            // duck typing
            var hasNameLikePerson = new HasNameLikePerson { Name = "HAL", Model = 9000 };
            Console.WriteLine(compiled.Execute<string>("script2class", "GoodbyeWithPerson", hasNameLikePerson));
            Console.WriteLine();
        }
Exemplo n.º 2
0
        private void ScriptInFile()
        {
            Console.WriteLine("Running script from file...");

            var script = new Script();
            script.InitializeFromFile(@"..\..\..\Scripts\script1.py");

            // no params call
            Console.WriteLine(script.Execute<string>("script1class", "Hello"));

            // single param call
            Console.WriteLine(script.Execute<string>("script1class", "HelloWithName", "Paulo"));

            // pass instance of complex type
            var person = new Person { Name = "Paulo Mouat", Address = "Boston" };
            Console.WriteLine(script.Execute<string>("script1class", "HelloWithPerson", person));

            // duck typing
            var hasNameLikePerson = new HasNameLikePerson { Name = "HAL", Model = 9000 };
            Console.WriteLine(script.Execute<string>("script1class", "HelloWithPerson", hasNameLikePerson));

            // change field in passed type
            var changeState = new Person { Name = "Paulo Mouat", Address = "Boston" };
            Console.WriteLine("Original state: " + changeState);
            script.Execute<string>("script1class", "ChangeAddress", changeState);
            Console.WriteLine("New state: " + changeState);
            Console.WriteLine();
        }