是否可以从托管的IronPython环境中执行的Python脚本中检索行号?我想在脚本执行时以某种方式突出显示托管环境之外的AvalonEdit控件中的那一行(在托管应用程序中)。
答案 0 :(得分:2)
我已经想通了,可以通过简单地给脚本引擎一个跟踪回调方法来获取该行,并且(可能是异步地)触发一个相应的事件,相应地刷新一个IBackgroundRenderer ......好吧......它的工作原理。
strategyScriptEngine.SetTrace(IronPythonTraceBack);
strategyScriptEngine.Execute(script, strategyScope);
在同一个班级的其他地方:
private static TracebackDelegate IronPythonTraceBack(TraceBackFrame frame, string result, object payload)
{
if (IronPythonExecutingLine != null) IronPythonExecutingLine((int)frame.f_lineno);
return IronPythonTraceBack;
}