我有一个由非常精通技术的人使用的应用程序,他们想要可编程性的小岛,所以我使用了嵌入式 Iron Python。
然而,自 IronPython 2.0 Eval() 起不再起作用。具体来说,我无法同时加载模块和注入局部变量。
有一个解决办法,我仍然可以调用 Execute(),打印出我的答案并收听 StandardOut,但随后它会以字符串形式出现,并且我丢失了类型。
这并不是一场长期的灾难,但对于更复杂的对象来说却是一个巨大的痛苦。
有谁知道如何让 Eval() 在 2.0 中像在 1.x 中那样再次工作?
干杯,
扬
您能否更具体地说明问题,并提供一个代码示例? “eval”风格的功能肯定仍然存在,尽管正如您所注意到的,自 1.0 以来,托管接口已经发生了很大的变化。
这在 beta 5 中有效:
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("2 + 5", SourceCodeKind.Expression);
int result = source.Execute<int>();
顺便说一句,使用正确的SourceCodeKind
这里很关键。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)