Встраивание IronPython в C#
Я просто смотрю на использование IronPython с C# и не могу найти отличную документацию для того, что мне нужно. В основном я пытаюсь вызвать методы из a .py-файл в программу на C#.
У меня есть следующее, которое открывает модуль:
var ipy = Python.CreateRuntime();
var test = ipy.UseFile("C:Usersktrg317DesktopTest.py");
но, я не уверен от вот как получить доступ к методу внутри. В Примере, который я видел, используется динамическое ключевое слово, однако на работе я нахожусь только на C# 3.0.
спасибо.
2 ответов
посмотреть вложение на сайте Voidspace.
пример есть, калькулятор IronPython и оценщик работает над простым вычислителем выражений python, вызываемым из
Вы можете попробовать использовать следующий код
ScriptSource script;
script = eng.CreateScriptSourceFromFile(path);
CompiledCode code = script.Compile();
ScriptScope scope = engine.CreateScope();
code.Execute(scope);
Это этой статьи.
или, если вы предпочитаете, чтобы вызвать метод, вы можете использовать что-то вроде этого,
using (IronPython.Hosting.PythonEngine engine = new IronPython.Hosting.PythonEngine())
{
engine.Execute(@"
def foo(a, b):
return a+b*2");
// (1) Retrieve the function
IronPython.Runtime.Calls.ICallable foo = (IronPython.Runtime.Calls.ICallable)engine.Evaluate("foo");
// (2) Apply function
object result = foo.Call(3, 25);
}
этот пример из здесь.