我有一个应用程序,由漂亮的tech-savey人使用,他们想要小岛的可编程性,所以我使用了嵌入式Iron Python。
但是,由于IronPython 2.0 Eval()不再起作用。具体来说,我不能同时加载模块和注入局部变量。
有一个工作,我仍然可以调用Execute(),打印出我的答案并听取StandardOut,但然后它出现了一个字符串,我丢失了类型。
长期不是灾难,但对于更复杂的物体来说却是巨大的痛苦。
有没有人知道如何让Eval()在2.0中再次使用,就像在1.x中一样?
干杯, 扬
答案 0 :(得分:2)
您是否可以更具体地了解问题,并提供代码示例? “eval”风格的功能肯定仍然存在,但正如您所注意到的,托管界面自1.0以来发生了很大变化。
这适用于测试版5:
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("2 + 5", SourceCodeKind.Expression);
int result = source.Execute<int>();
顺便说一句,在这里使用右SourceCodeKind
至关重要。
答案 1 :(得分:1)