从嵌入式IronPython访问C#类

时间:2018-04-07 17:00:52

标签: c# ironpython

我可以从C#代码访问python函数。 我可以从python脚本访问类的C#方法吗? 我发现只有来自程序集的调用,而不是来自嵌入式IronPython。

C#

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Test t = new Test();

            ScriptEngine engine = Python.CreateEngine();
            ScriptScope scope = engine.CreateScope();

            scope.SetVariable("test", t);

            engine.ExecuteFile("test.py", scope);

            Console.WriteLine("-------------------->");
            Console.Read();

        }
    }

    public class Test
    {
        public string foo;
        public Test()
        {
            foo = "foo ok";
        }

        public void Do()
        {
            Console.WriteLine("Do()");
        }
    }
}

Python脚本

print(type(test).__name__)    # Test
print(test.foo)               # 'foo ok'
test.Do()                     # 'Test' object has no attribute 'Do'

我如何访问类方法?

0 个答案:

没有答案