Как настроить динамический импорт при размещении IronPython? - PullRequest
3 голосов
/ 16 июля 2010

Я пишу клиентское приложение на C #, которое призвано обеспечить сильную поддержку настройки с помощью сценариев, и я выбрал IronPython в качестве целевого языка сценариев.Я хотел бы сохранить код пользователя в базе данных приложения с остальным его состоянием, но мне нужно, чтобы пользователь мог разбивать свои сценарии на файлы и модули.

Как я могу настроить движок IronPython такчто он будет использовать строки (с соответствующими виртуальными путями) в качестве источника для импорта, а не указывать каталог в файловой системе пользователя?Это возможно?

1 Ответ

3 голосов
/ 17 июля 2010

Вам необходимо создать подкласс класса PlatformAdaptationLayer и реализовать вызовы "файловой системы". Затем IronPython отправится в PAL, чтобы выполнить ввод / вывод для файлов. Это также включает реализацию ScriptHost, который возвращает тип для PAL. Хорошим примером этого является хост Silverlight, который перенаправляет файловый ввод / вывод в файл XAP.

Если вы просматриваете источник IronPython на IronPython.CodePlex.com, вы найдете хост Silverlight в IronPython_Main \ Hosts \ Silverlight \ Microsoft.Scripting.Silverlight.

...