如何将IronPython实例方法传递给类型为`Func`的(C#)函数参数

我正在尝试将IronPython实例方法分配给C#Func< Foo>.参数.

在C#中,我将有一个类似的方法:

public class CSharpClass
{
    public void DoSomething(Func<Foo> something)
    {
        var foo = something()
    }
}

并从IronPython这样调用它:

class IronPythonClass:
    def foobar(self):
        return Foo()
CSharpClass().DoSomething(foobar)

但我收到以下错误:

TypeError:预期的Func [Foo],具有instancemethod

解决方法:

好.我想我可能已经找到了解决方案:

import clr
clr.AddReference('System')
clr.AddReference('System.Core')

from System import Func

class IronPythonClass:
def foobar(self):
    return Foo()

CSharpClass().DoSomething(Func[Foo](foobar))

有趣的是Func [Foo] constructor

上一篇:c#-具有可变数量的参数的IronPython函数作为委托


下一篇:我可以使用IronPython开发Google App Engine的GUI吗?