3
我正在編寫一個C#客戶端應用程序,該應用程序旨在通過腳本爲定製提供強有力的支持,並且我選擇IronPython作爲我的目標腳本語言。我想將用戶的代碼保留在應用程序的數據庫中,並保留其狀態,但我需要用戶能夠將他們的腳本分割成文件和模塊。如何在託管IronPython時設置動態導入?
如何配置IronPython引擎,以便它將使用字符串(具有相應的虛擬路徑)作爲導入源,而不是在用戶的文件系統中指定目錄?這可能嗎?
我正在編寫一個C#客戶端應用程序,該應用程序旨在通過腳本爲定製提供強有力的支持,並且我選擇IronPython作爲我的目標腳本語言。我想將用戶的代碼保留在應用程序的數據庫中,並保留其狀態,但我需要用戶能夠將他們的腳本分割成文件和模塊。如何在託管IronPython時設置動態導入?
如何配置IronPython引擎,以便它將使用字符串(具有相應的虛擬路徑)作爲導入源,而不是在用戶的文件系統中指定目錄?這可能嗎?
您需要繼承PlatformAdaptationLayer類並實現「文件系統」調用。 IronPython然後會去PAL來爲文件做I/O操作。這也涉及實現一個ScriptHost,它返回PAL的類型。一個很好的例子就是將文件I/O重定向到XAP文件的Silverlight主機。
如果您在IronPython.CodePlex.com上瀏覽IronPython源代碼,您會在IronPython_Main \ Hosts \ Silverlight \ Microsoft.Scripting.Silverlight中找到Silverlight主機。