У меня есть следующий код IronPython.
class Hello:
def __init__(self):
pass
def add(self, x, y):
return (x+y)
Я мог бы сделать следующий код C # для использования кода IronPython.
static void Main()
{
string source = GetSourceCode("ipyth.py");
Engine engine = new Engine(source);
ObjectOperations ops = engine._engine.Operations;
bool result = engine.Execute();
if (!result)
{
Console.WriteLine("Executing Python code failed!");
}
else
{
object klass = engine._scope.GetVariable("Hello");
object instance = ops.Invoke(klass);
object method = ops.GetMember(instance, "add");
int res = (int) ops.Invoke(method, 10, 20);
Console.WriteLine(res);
}
Console.WriteLine("Press any key to exit.");
Console.ReadLine();
}
Могу ли я упростить этот код с динамическим DLR?
Книга IronPython In Action содержит простое объяснение в <15.4.4 Будущее взаимодействия с динамическими объектами>, но я не смог найти некоторые примеры.
ДОБАВЛЕНО
Я прилагаю исходный / пакетный файл для программы. Program.cs runme.bat