2

以下のコードを実行すると、最後の行に次の例外が発生します。

InvalidOperationException: "バインドされていない変数:値"

var rubyRuntime = Ruby.CreateRuntime();
rubyRuntime.UseFile("HandleMoveRequested.rb");
var engine = rubyRuntime.GetEngine("rb");
dynamic ruby = engine.Runtime.Globals;

var handler = ruby.HandleMoveRequested.@new();

dynamic msg = new ExpandoObject();
msg.x = 1;
msg.y = 2;

handler.handle(msg);

HandleMoveRequested.rbの内容は次のとおりです。

class HandleMoveRequested
    def handle(msg)
        System::Console.WriteLine msg.x
        System::Console.WriteLine msg.y
    end
end

基本的には、完全に動的なオブジェクトをそのRubyオブジェクトの「handle」メソッドに渡して、そのオブジェクトの「x」プロパティと「y」プロパティにアクセスできるようにしたいだけです。私は間違った木を吠えていますか?

4

1 に答える 1

1

ソースから最新のものをビルドした後、コードを(現状のままで)テストしました:http: //github.com/ironruby/ironruby

これを試してみてください。修正は次のRCビルド(RC3?)以降に含まれると思います。
ソースからビルドする場合は、Ruby4.slnを使用して「V4リリース」ビルドをビルドするようにしてください。

編集:自分でテストしました、これは最新では問題なく動作します

于 2010-03-03T18:33:36.223 に答える