我正在尝试使用IronPython从C#控制台应用程序调用python脚本(SamplePython.py)。当我运行控制台应用程序时,脚本成功执行,并且结果符合预期。但是我不确定如何为脚本中使用的自定义.net类型添加智能感知和自动完成功能。
我尝试导入python clr并调用clr.AddReference(“ customdll”),但它没有提供任何寻求智能感知的功能。
C#控制台代码的代码段
ScriptSource pythonScript;
ObjectOperations objectOperations;
ScriptScope scope;
ScriptEngine pythonEngine = Python.CreateEngine();
scope = pythonEngine.CreateScope();
objectOperations = pythonEngine.Operations;
pythonScript = pythonEngine.CreateScriptSourceFromFile(@"<Path to script File>/SamplePython.py");
pythonScript.Execute(scope);
dynamic pythonMethod = scope.GetVariable("PythonMethod");
PythonTestType pythonTestType = new PythonTestType();
pythonTestType.TestProp = 8;
int x = pythonMethod(pythonTestType);
C#自定义类型的代码段。
namespace PythonTestLibrary
{
public class PythonTestType
{
public int TestProp { get; set; }
}
}
python脚本的代码段。
def PythonMethod(pythonTestType):
return pythonTestType.TestProp
在Visual Studio代码中编写python脚本时,我希望IDE键入pythonTestType时将列出“ TestProp”,然后将点运算符作为智能感知的一部分,就像我获取其他python内置数据类型一样。