2

我有一个非常精通技术的人使用的应用程序,他们想要小岛的可编程性,所以我使用了嵌入式 Iron Python。

但是,由于 IronPython 2.0 Eval() 不再起作用。具体来说,我不能既加载模块又注入局部变量。

有一种解决方法,我仍然可以调用 Execute(),打印出我的答案并收听 StandardOut,但随后它以字符串形式出现,我丢失了类型。

不是长久的灾难,而是更复杂的对象的巨大痛苦。

有谁知道如何让 Eval() 像在 1.x 中一样在 2.0 中再次工作?

干杯,简

4

2 回答 2

2

您能否对问题更具体一点,并提供一个代码示例?“eval”风格的功能肯定仍然存在,尽管您已经注意到,自 1.0 以来托管界面发生了很大变化。

这适用于 beta 5:

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

顺便说一句,在SourceCodeKind这里使用权利是至关重要的。

于 2008-10-13T23:24:30.893 回答
1

这个例子可以帮助你:http ://www.voidspace.org.uk/ironpython/dlr_hosting.shtml

于 2008-10-13T23:26:18.893 回答