如何使用Python ScriptEngine在C#中获取所有本地变量名称和值?

时间:2017-01-25 05:49:03

标签: c# python ironpython scriptengine

我正在使用Microsoft.Scripting.Hosting.ScriptEngine并通过IronPython.Hosting.Python.CreateEngine()对其进行实例化。然后我创建一个Scope并执行一些python代码。

我现在想在C#中收集所有本地分配的变量名及其值。如何通过查询Python ScriptEngine和Scope来提取在Python脚本中声明和分配的所有变量名称和值,但是从C#中提取?

由于

1 个答案:

答案 0 :(得分:1)

您可以通过动态对象和反射来完成此操作。 这只是有翼的代码,但如果您发送给我或主持解决方案,我可以为您解决。

dynamic someOject = IronPython.Hosting.Python.CreateEngine();

foreach (var property in someOject.GetType().GetProperties())
     Console.WriteLine($"Property Name: {property.Name} - Property Value: {property.GetValue(someOject)}");

不确定这是否是您要找的......如果不是,请告诉我,以便我们进一步为您提供帮助。