0

我有一个应用程序将一些 c# 对象暴露给嵌入式 IronPython 解释器,如下所示:

using IronPython.Hosting;

namespace ironpy
{
    public class Foo
    {
        public void bar(string message)
        {
            System.Console.WriteLine(message);
        }
    }

    class Program
    {
        static void Main(string[] args)
        {
            var engine = Python.CreateEngine();
            var scope = engine.CreateScope();

            var test = new Foo();

            scope.SetVariable("foo", test);

            string code = "foo.bar('Hello')";

            engine.Execute(code, scope);
        }
    }
}

实际上,python 源代码来自运行时加载的文本文件。

在 VSCode 或其他编辑器中编辑这样的源文件时,提供代码完成的语言服务器显然不知道什么是可用的。所以你没有代码完成和恼人的错误曲线无处不在。

是否有可能为常用的语言服务器之一编写某种插件/提示/linting 文件,以告诉他们导出的 C# API 以在编辑 python 源文件时完成工作代码?

4

2 回答 2

0

在我看来,定义 .py 文件并在其中实现代码是最好的方法。然后你可以执行你的 .py 文件,如下所示;

https://stackoverflow.com/a/11779234/4582992

于 2020-11-02T21:50:52.997 回答
0

与此同时,我找到了解决问题的方法:IronPython Stubs files

https://github.com/gtalarico/ironpython-stubs

于 2020-11-02T21:43:08.200 回答