.net - IronPython 将 .Net 类型暴露给运行时引擎

标签 .net ironpython dynamic-language-runtime

我希望向 IronPython 运行时公开特定的 .Net 类型。我可以做这个:

ScriptEngine engine = Python.CreateEngine();
ScriptScope scope = engine.CreateScope();
engine.Runtime.LoadAssembly(typeof(Program).Assembly); // current assembly with types

但这会将所有类型暴露给运行时。可以选择类型加载吗?

最佳答案

实际上有几个选项都不是自动的。首先,您需要调用 DynamicHelpers.GetPythonTypeFromType(typeof(TypeToInject)) 以获取实际可用的 PythonType 对象。然后你可以:

  • 将其注入(inject) ScriptRuntime.Globals 即可导入
  • 针对您将要运行的某些代码将其注入(inject) ScriptScope
  • 将其注入(inject)到 PythonType.GetBuiltinModule() 范围内,无需导入
  • 即可使用

    关于.net - IronPython 将 .Net 类型暴露给运行时引擎,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2209226/

    相关文章:

    python - ASP.NET MVC 上的 IronPython

    python - IronPython:使用 pyc.py 编译的 EXE 无法导入模块 "os"

    visual-studio - 如何在Visual Studio中突出显示动态代码

    .net - Asp.NET MVC 2 中的通用 TimeSpan 绑定(bind)

    c# - 如何验证 WindowsIdentity 实例?

    .net - 如何使 Entity Framework 4内部缓存无效

    c# - 我应该为我的 Financial Silverlight 应用程序使用哪些框架(MVVM light、Prism、MEF 等)?

    IronPython 中质量评估表达式的性能

    c# - .Net 3.5 DLR DynamicObject 帮助

    c# - 将动态对象解析委托(delegate)给其他实例