将Ironpython输出流式传输到我的编辑器

Gan*_*esh 4 ironpython

我们在app sob中嵌入了ironpython,脚本可以在我们的应用程序环境中执行.

我使用Python.CreateEngine()和ScriptScope.Execute()来执行python脚本.

我们有自己的编辑器(用C#编写),可以加载ironpython脚本并运行它.

我需要解决两个问题.

  1. 如果我在ironpython脚本中有一个print语句,我怎么能把它显示给我的编辑器(我将如何告诉python引擎将输出重定向到我的C#代码中的某个处理程序)

  2. 我计划使用unittest.py来运行unittest.当我运行以下runner = unittest.TextTestRunner()runner.run(testsuite)时

输出被重定向到标准输出,但需要一种方法将其重定向到我的C#编辑器输出窗口,以便用户可以看到结果.这个问题可能与1有关

任何帮助表示赞赏G.

Din*_*and 6

您可以提供将用于所有输出的自定义Stream或TextWriter.您可以使用ScriptRuntime.IO.SetOutput重载之一来提供这些.您的Stream或TextWriter实现应该接收字符串,然后将它们输出到编辑器窗口(如果您在第二个执行线程上运行脚本,则可能会编组回UI线程).