我正在编写一个 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/