以下のコードを実行すると、最後の行に次の例外が発生します。
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」プロパティにアクセスできるようにしたいだけです。私は間違った木を吠えていますか?