Come faccio a passare un ExpandoObject da C # in IronRuby?
-
23-09-2019 - |
Domanda
mi L'esecuzione del sottostante Codice dà la seguente eccezione sull'ultima riga:
InvalidOperationException: "variabile non legato: il valore"
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);
Il contenuto di HandleMoveRequested.rb sono:
class HandleMoveRequested
def handle(msg)
System::Console.WriteLine msg.x
System::Console.WriteLine msg.y
end
end
Fondamentalmente voglio solo essere in grado di passare un oggetto completamente dinamico in quel metodo "maniglia" di rubino oggetto e farlo essere in grado di accedere alle "x" e "y" proprietà su tale oggetto. Am I abbaiare contro l'albero sbagliato?
Soluzione
Ho testato il codice (come-è) dopo aver costruito l'ultimo dalla fonte: http://github.com/ironruby/ironruby
Si prega di provare questo. Mi immagino la correzione sarà inclusa nel prossimo RC Costruire (RC3?) E più tardi.
Quando si genera dai sorgenti, assicurarsi che si costruisce la build "V4 di uscita" utilizzando Ruby4.sln
Modifica me provata, questo funziona senza problema in ultima