c#-4.0 – 向IronPython范围添加静态方法

前端之家收集整理的这篇文章主要介绍了c#-4.0 – 向IronPython范围添加静态方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有以下代码
public static class Foo
{
    public static void Bar() {}
}

在IronPython中,我想:

Bar()

无需在线上包含Foo.现在,我知道我可以说:

var Bar = Foo.Bar
Bar()

但我想使用SetVariable在我的C#代码中将Bar添加到ScriptScope.我怎样才能做到这一点?

解决方法

创建委托方法并设置范围.
public class Program
{
    public static void Main(string[] args)
    {
        var python = Python.CreateEngine();
        var scriptScope = python.CreateScope();
        scriptScope.SetVariable("Print",new Action<int>(Bar.Print));

        python.Execute(
            "Print(10)",scriptScope
            );
    }

}

public static class Bar
{
    public static void Print(int a)
    {
        Console.WriteLine("Print:{0}",a);
    }
}
原文链接:https://www.f2er.com/csharp/243219.html

猜你在找的C#相关文章