昨日のエントリでDLRを使ったホスティングを簡単に説明しましたが、少し情報が古かったです。具体的には、IronPython 2.0A6までの話で、A7から変更になっています。A7からLangagueProviderクラスが廃止になり、ScriptEngineクラスのメソッドが変更になっています。このためScriptDomainManagerからスクリプトエンジンのインスタンスを取得します。
using Microsoft.Scripting; using Microsoft.Scripting.Hosting; ScriptEngine eng = ScriptDomainManager.CurrentManager.GetEngine("py");
SourceUnit su = eng.CreateScriptSourceFromString("スクリプトコード");
object ret = eng.ExecuteProgram(su);
sc = ScriptDomainManager.CurrentManager.CreateModule("__main__");
より簡単にスクリプトを実行するには、Microsoft.Scripting.Scriptクラスを使用します。ScriptクラスにExecute(スクリプト,言語識別子)やEvaluateメソッドなどが用意されています(このメソッドはA6にもありますので、A7ではこちらへ集約されたようです)。
PingBack from http://geeklectures.info/2008/01/09/dlrdlr%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%9f%e3%83%9b%e3%82%b9%e3%83%86%e3%82%a3%e3%83%b3%e3%82%b0a7/