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

时间:2010-07-16 10:45:22

标签: .net ironpython dynamic-language-runtime

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

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

1 个答案:

答案 0 :(得分:3)

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

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