2

私はかなり技術に精通した人々が使用するアプリケーションを持っており、彼らはプログラム可能な小さな島を望んでいるので、組み込みの Iron Python を使用しました。

ただし、IronPython 2.0 から Eval() は機能しなくなりました。具体的には、モジュールのロードとローカル変数の挿入の両方ができません。

まだ Execute() を呼び出して回答を出力し、StandardOut をリッスンできる回避策がありますが、それが文字列として出力され、型が失われました。

長い間大惨事ではありませんでしたが、より複雑なオブジェクトにとっては大きな苦痛です。

Eval() を 1.x のように 2.0 で再び動作させる方法を知っている人はいますか?

乾杯、ジャン

4

2 に答える 2

2

問題についてもう少し具体的に説明していただけますか、コード例を提供していただけますか? 「eval」スタイルの機能は間違いなくまだ存在しますが、お気づきのように、ホスティング インターフェイスは 1.0 以降大幅に変更されています。

これはベータ 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 に答える