我有一个非常精通技术的人使用的应用程序,他们想要小岛的可编程性,所以我使用了嵌入式 Iron Python。
但是,由于 IronPython 2.0 Eval() 不再起作用。具体来说,我不能既加载模块又注入局部变量。
有一种解决方法,我仍然可以调用 Execute(),打印出我的答案并收听 StandardOut,但随后它以字符串形式出现,我丢失了类型。
不是长久的灾难,而是更复杂的对象的巨大痛苦。
有谁知道如何让 Eval() 像在 1.x 中一样在 2.0 中再次工作?
干杯,简
我有一个非常精通技术的人使用的应用程序,他们想要小岛的可编程性,所以我使用了嵌入式 Iron Python。
但是,由于 IronPython 2.0 Eval() 不再起作用。具体来说,我不能既加载模块又注入局部变量。
有一种解决方法,我仍然可以调用 Execute(),打印出我的答案并收听 StandardOut,但随后它以字符串形式出现,我丢失了类型。
不是长久的灾难,而是更复杂的对象的巨大痛苦。
有谁知道如何让 Eval() 像在 1.x 中一样在 2.0 中再次工作?
干杯,简
您能否对问题更具体一点,并提供一个代码示例?“eval”风格的功能肯定仍然存在,尽管您已经注意到,自 1.0 以来托管界面发生了很大变化。
这适用于 beta 5:
ScriptEngine engine = Python.CreateEngine();
ScriptSource source = engine.CreateScriptSourceFromString("2 + 5", SourceCodeKind.Expression);
int result = source.Execute<int>();
顺便说一句,在SourceCodeKind这里使用权利是至关重要的。