2010-03-02 49 views
2

執行下面的代碼,讓我在最後一行以下異常:如何將C#中的ExpandoObject傳遞給IronRuby?

InvalidOperationException異常: 「綁定變量:值」

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

var handler = [email protected](); 

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對象的「句柄」方法,並讓它能夠訪問「x」和「y」屬性那個對象。我吠叫錯了樹嗎?

回答

1

我測試你的代碼(按原樣)從源文件編譯的最新之後: http://github.com/ironruby/ironruby

請試試這個。我想這個修復會包含在下一個RC Build(RC3?)及更高版本中。
當你從源代碼編譯,確保您打造的「V4版本」建立使用Ruby4.sln

編輯:測試自己,這個工程沒有問題最新