.net - 托管 IronPython 时如何设置动态导入?

标签 .net ironpython dynamic-language-runtime

我正在编写一个 C# 客户端应用程序,旨在为通过脚本进行自定义提供强大支持,并且我选择 IronPython 作为我的目标脚本语言。我希望将用户的代码及其其余状态保留在应用程序的数据库中,但我需要用户能够将其脚本拆分为文件和模块。

如何配置 IronPython 引擎,使其使用字符串(带有相应的虚拟路径)作为导入源,而不是在用户文件系统中指定目录?这可能吗?

最佳答案

您需要子类化 PlatformAdaptationLayer 类并实现“文件系统”调用。然后,IronPython 将转到 PAL 对文件执行 I/O。这还涉及实现返回 PAL 类型的 ScriptHost。一个很好的例子就是 Silverlight 主机,它将文件 I/O 重定向到 XAP 文件。

如果您在 IronPython.CodePlex.com 上浏览 IronPython 源代码,您将在 IronPython_Main\Hosts\Silverlight\Microsoft.Scripting.Silverlight 中找到 Silverlight 主机。

关于.net - 托管 IronPython 时如何设置动态导入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3264029/

相关文章:

c# - 使用继承将 List<T> 序列化为 XML

.net - 如何使用 ILMerge 将多个程序集合并为一个程序集

.net - .NET 4.0 DLR支持的动态语言

C# 而不是 IronRuby 作为 .NET 3.5 中的嵌入式 "scripting"语言

c# - 已接受的用于处理 Excel 数据的集合

c# - 将 ExpandableObjectConverter 与下拉列表结合起来

.net - IronPython - 将 int 转换为字节数组

python - IronPython 中二维类型数组的内联初始化

javascript - 显示在 spotfire 可视化中标记的行的值?

.net - 如何在 VS2008 中实现对自定义 DLR 语言的智能感知支持?