2008-10-13 56 views
2

我有一個由漂亮的技術人員使用的應用程序,他們想要可編程性的小島,所以我使用了嵌入式的Iron Python。在我的C#應用​​程序中嵌入IronPython的最佳方式是什麼?

然而,由於IronPython的2.0的eval()不工作了。具體來說,我不能同時加載模塊和注入局部變量。

有一個解決辦法,我仍然可以調用execute(),打印出我的回答,聽StandardOut,但隨後它出來作爲一個字符串,我已經失去了類型。

不是一個長期的災難,但對於更復雜的對象一個巨大的痛苦。

有誰知道怎麼弄的eval()在2.0重新工作像它在1.x的那樣?

乾杯, 揚

回答

2

你能成爲一個更具體一點的問題,也許提供了一個代碼示例? 「eval」風格的功能當然還是存在的,不過正如你所注意到的,自1.0版以來,主機接口已經發生了很大的變化。

這工作處於測試階段5:

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

順便說一句,使用正確的SourceCodeKind是關鍵在這裏。

+0

我在測試版4上,它值得去5嗎? – 2008-10-13 23:29:54

+0

測試版5中的主機接口幾乎是最終的。我不記得他們在4到5之間有多少變化,但我確信有一些變化。 RC1將在一週左右出局。 – 2008-10-13 23:32:13

相關問題