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.

Respuestas a la pregunta(2)

Su respuesta a la pregunta