我正在编写一个C#客户端应用程序,旨在通过脚本强大地支持自定义,我选择了IronPython作为我的目标脚本语言。我希望将用户的代码保留在应用程序的数据库中以及其余状态,但是我需要用户能够将脚本分成文件和模块。
如何配置IronPython引擎以便它使用字符串(带有相应的虚拟路径)作为导入源,而不是在用户的文件系统中指定目录?这可能吗?
答案 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主机。