IronPython, доступ к экземпляру класса из скрипта
От: uni Россия  
Дата: 11.06.13 11:14
Оценка:
Доброго, может ли кто привести пример доступа из скрипта к экземпляру класса, из которого выполняется сам скрипт. Нужно изменять в скрипте свойства экземпляра класса для настройки параметров. Хотелось бы что-нить без статических полей, если возможно. Может быть есть какой-то специальный механизм?

Вот так вызываю скрипт в виде строки:

using IronPython.Hosting;
using IronPython.Runtime;
using Microsoft.Scripting;
using Microsoft.Scripting.Hosting;

private void RunScript( XYPlot xyplot ) {

    ScriptEngine engine;
    ScriptRuntime runtime;
    ScriptSource source = null;

    try {

        XYPlot.xyplot = xyplot.canv;

        engine = Python.CreateEngine();
        
        runtime = engine.Runtime;

        runtime.LoadAssembly( System.Reflection.Assembly.GetExecutingAssembly() );

        source = engine.CreateScriptSourceFromString( base.canv.Script, SourceCodeKind.AutoDetect );

        ScriptScope scope = runtime.CreateScope();

        CompiledCode compil = source.Compile();

        // Выполняем скрипт.
        compil.Execute( scope );

    } catch {}

}


XYPlot.xyplot = xyplot.canv; — это использование статического поля, которое будет доступно в скрипте. Делаю по аналогии со статьёй на хабре, где использовалось статическое поле для доступа к экземпляру. Я не спец по python и IronPython и потому хотелось бы посмотреть на примеры использования скриптов для управления свойствами экземпляра класса.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.