Configuración y obtención de variables en el script IronPython alojado .Net
Estoy tratando de crear un prototipo de un motor de reglas de validación utilizando IronPython alojado en una aplicación de consola .Net. He eliminado el guión hasta lo que creo que es lo básico
var engine = Python.CreateEngine();
engine.Execute("from System import *");
engine.Runtime.Globals.SetVariable("property_value", "TB Test");
engine.Runtime.Globals.SetVariable("result", true);
var sourceScope = engine.CreateScriptSourceFromString("result = property_value != None and len(property_value) >= 3");
sourceScope.Execute();
bool result = engine.Runtime.Globals.GetVariable("result");
engine.Runtime.Shutdown();
Sin embargo, no puede detectar las variables globales que creo que he configurado. Falla cuando el script se ejecuta con
global name 'property_value' is not defined
pero puedo verificar las variables globales en el alcance y están allí: esta declaración devuelve verdadero cuando ejecuto el depurador
sourceScope.Engine.Runtime.Globals.ContainsVariable("property_value")
Soy un novato completo con IronPython, así que me disculpo si esta es una pregunta fácil / obvia.
La motivación general para esto es creareste tipo de motor de reglas pero con una versión posterior (más reciente) de IronPython donde algunos de los métodos y firmas han cambiado.