Question

I have an application used by pretty tech-savey people and they want small island of programmability so I've used embedded Iron Python.

However, since IronPython 2.0 Eval() doesn't work any more. Specifically I can't both load modules and inject local variables.

There is a work around where I can still call Execute(), print out my answer and listen to StandardOut, but then it comes out as a string and I've lost the type.

Not a disaster for a long, but a huge pain for more complex objects.

Does anyone know how to get Eval() working again in 2.0 like it did in 1.x?

Cheers, Jan

Was it helpful?

Solution

Could you be a little more specific about the problem, and maybe provide a code example? The "eval"-style functionality is definitely still present, though as you've noticed, the hosting interface has changed considerably since 1.0.

This works in beta 5:

ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("2 + 5", SourceCodeKind.Expression);
int result = source.Execute<int>();

By the way, using the right SourceCodeKind is critical here.

OTHER TIPS

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top