Ссылка больше не работает.

у приложение на C #, в которое встроен IronPython (2.0.1). Идея состоит в том, чтобы представить части приложения сценариям IronPython, которые пишут пользователи.

Я хочу предоставить пользователям возможность отлаживать написанные ими сценарии с помощью отладчика Visual Studio. Обратите внимание, что сценарии запускаются в размещенной среде, а не через исполняемый файл IronPython (ipy.exe).

После небольшого количества магии Reflector на сборках IronPython я придумал что-то, что позволяет мне это делать, но я не уверен, является ли это предписанным способом. По сути, я создаю объект «ScriptRuntime» со свойством «DebugMode», установленным в «true», а затем создаю «ScriptEngine» на основе Python из «ScriptRuntime», который я использую для хостинга. Код ниже.

        ScriptRuntimeSetup setup = new ScriptRuntimeSetup();
        setup.DebugMode = true;
        setup.LanguageSetups.Add(Python.CreateLanguageSetup(null));

        ScriptRuntime runtime = new ScriptRuntime(setup);
        ScriptEngine engine = runtime.GetEngineByTypeName(typeof(PythonContext).AssemblyQualifiedName);

Теперь, когда я выполняю сценарии в размещенной среде, используя:

            ScriptSource script = engine.CreateScriptSourceFromFile(path);
            CompiledCode code = script.Compile();
            ScriptScope scope = engine.CreateScope();
            script.Execute(scope);

Я могу разместить точки останова в файлах сценариев, и они получат удар при выполнении сценария.

Итак, есть ли лучший / более простой способ сделать это?

Спасибо

Ответы на вопрос(2)

Ваш ответ на вопрос