在我的C#App中嵌入IronPython的最佳方法是什么?

时间:2008-10-13 23:13:03

标签: c# .net ironpython dynamic-language-runtime

我有一个应用程序,由漂亮的tech-savey人使用,他们想要小岛的可编程性,所以我使用了嵌入式Iron Python。

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

有一个工作,我仍然可以调用Execute(),打印出我的答案并听取StandardOut,但然后它出现了一个字符串,我丢失了类型。

长期不是灾难,但对于更复杂的物体来说却是巨大的痛苦。

有没有人知道如何让Eval()在2.0中再次使用,就像在1.x中一样?

干杯, 扬

2 个答案:

答案 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)

此示例可能会对您有所帮助:http://www.voidspace.org.uk/ironpython/dlr_hosting.shtml