C# から IronRuby の呼び出しをしてみたくなったので、試してみる。
事前条件
以下の物が必要なので、用意の事
- Visual Studio 2008
Express edion でも動作すると思う。今回は Standard Edition の英語版を利用している。 - IronRuby 0.9.2
手順
- IronRubyを展開する
- Visual Studio 2008 で Console アプリケーションを作成
- 参照設定でIronRuby等を追加する
- Using を記述する
- IronRuby のエンジンを生成する
- ruby コードを渡してコードの評価を行う
準備
まず、IronRubyを取得する。今回は 0.9.2 を利用した。(とりあえず ZIP 版をダウンロードした)
次に、上記ZIPファイルを適当なフォルダへ展開する。
コード生成
Visual Studio を立ち上げ、コンソールアプリケーションのひな型を作る。
そのあと、「参照設定」でアセンブリを追加する。この時 IronRuby を展開したフォルダ\bin\ に以下のファイルがあるので追加する。
- IronRuby.dll
- IronRuby.Libraries.dll
- Microsoft.Scripting.dll
追加後、参照設定が以下のようになればOK。(スクリーンショットは英語版なので若干雰囲気が違うはず)

ソースコード
以下のコードを追加すればOK
using System;
using Microsoft.Scripting.Hosting;
namespace ConsoleApplication
{
class Program
{
static void Main(string[] args)
{
ScriptRuntime runtime = IronRuby.Ruby.CreateRuntime(); //1
var engine = runtime.GetEngine("rb"); //2
engine.Execute("puts 'Hello IronRuby'"); //3
Console.ReadLine(); //改行待ち
}
}
}
//1 の部分で、スクリプトランタイムを製私営します。そのランタイムから、//2で、エンジンを取得します。このエンジンに実行したい ruby script を渡すと(//3)、ruby script が評価され画面に文字列が表示される。最後は、コンソールで改行が押されるまで、待つことになる。
さいごに
以上の方法で、C# から IronRuby のコードが呼び出せます。C#からIronRuby のコードを実行できるようになると夢が広がる。


コメントする