【问题标题】:How to get all local variable names and values in C# using Python ScriptEngine?如何使用 Python ScriptEngine 获取 C# 中的所有局部变量名称和值?
【发布时间】:2017-01-25 14:15:35
【问题描述】:

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

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

谢谢

【问题讨论】:

    标签: c# python ironpython scriptengine


    【解决方案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)}");
    

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

    【讨论】:

    • 谢谢,虽然我只是通过scope.GetVariableNames()scope.GetVariable(string variableName) 找到了一种更简单的方法
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多