Допустим имеем питоновский класс:
- class Calculator(object):
- def add(self, a, b):
- return a + b
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using IronPython.Hosting;
- using IronPython.Runtime;
- using Microsoft.Scripting;
- using Microsoft.Scripting.Hosting;
- namespace ConsoleApplication1
- {
- class Program
- {
- static void Main(string[] args)
- {
- int x = 1;
- int y = 2;
- string scriptPath = "Calculator.py";
- ScriptEngine engine = Python.CreateEngine();
- ScriptSource source = engine.CreateScriptSourceFromFile(scriptPath);
- ScriptScope scope = engine.CreateScope();
- ObjectOperations op = engine.Operations;
- source.Execute(scope);
- dynamic Calculator = scope.GetVariable("Calculator");
- dynamic calc = Calculator();
- System.Console.WriteLine( calc.add(x,y));
- System.Console.WriteLine(calc.add(12, 22));
- System.Console.WriteLine(calc.add("a", "b"));
- }
- }
- }