Первый вариант - использовать статический метод. Для этого вам нужно использовать декоратор @staticmethod
:
class IronPythonClass:
@staticmethod
def foobar():
return Foo()
CSharpClass().DoSomething(IronPythonClass.foobar)
Если вы хотите, чтобы это был метод экземпляра, то вы можете использовать связанный метод:
class IronPythonClass:
def foobar(self):
return Foo()
ipc = IronPythonClass()
CSharpClass().DoSomething(ipc.foobar) # using ipc.foobar binds 'ipc' to the 'self' parameter
Наконец, у вас должна быть возможность взять Func<object, Foo>
и передать метод экземпляра, как вы изначально пытались это сделать.