Configurando e obtendo variáveis no script IronPython hospedado em .Net
Estou tentando criar um protótipo de um mecanismo de regras de validação usando o IronPython hospedado em um aplicativo de console .Net. Eu reduzi o script até o que acredito ser o 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();
No entanto, ele não pode detectar as variáveis globais que eu acho que configurei. Falha quando o script é executado com
global name 'property_value' is not defined
mas posso verificar as variáveis globais no escopo e elas estão lá - essa declaração retorna verdadeira quando eu corro no depurador
sourceScope.Engine.Runtime.Globals.ContainsVariable("property_value")
Eu sou um novato completo no IronPython, então peço desculpas se esta for uma pergunta fácil / óbvia.
A motivação geral para isso é criaresse tipo de mecanismo de regras mas com uma versão posterior (mais recente) do IronPython, em que alguns dos métodos e assinaturas foram alterados.