У меня есть нестатический класс C # с некоторыми методами экземпляров, которые мне нужно вызывать из сценариев IronPython. В настоящее время я делаю это так:
scope.SetVariable("class", instanceOfClass);
в коде C # и
class.SomeMethod(args)
в сценарии.
Я хочу вызывать методы этого класса без добавления class.
каждый раз в сценарии. У каждого скрипта есть свой экземпляр класса, и в одном скрипте используется только один экземпляр.
Если бы этот класс был статическим, решение было бы from ClassName import *
, но, как я знаю, аналогичной конструкции для нестатических классов не существует.
Как это можно сделать? У меня есть некоторые идеи (такие как использование отражения или добавление class.
к каждому вызову в исходном коде Python программно), но они слишком сложны и могут даже оказаться невозможными для реализации.
UPD:
Проблема решена с помощью такого кода Python (до фактического сценария):
def Method1(arg1): # for simple method
class.Method1(arg1)
def Method2(arg = 123): # for default values
class.Method2(arg)
def Method3(*args): # for params
class.Method3(args)
# so on