Установка и получение переменных в .Net-скрипте IronPython

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

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();

Однако он не может обнаружить глобальные переменные, которые, я думаю, я установил. Не удается, когда скрипт выполняется с

global name 'property_value' is not defined

но я могу проверить глобальные переменные в области видимости, и они есть - этот оператор возвращает true, когда я запускаю в отладчике

sourceScope.Engine.Runtime.Globals.ContainsVariable("property_value")

Я новичок в IronPython, поэтому извиняюсь, если это простой / очевидный вопрос.

Общая мотивация к этому является созданиеэтот вид правил двигателя но с более поздней (самой последней) версией IronPython, где некоторые методы и подписи были изменены.

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

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