Comment passer un je ExpandoObject de C # dans IronRuby?
-
23-09-2019 - |
Question
L'exécution du code ci-dessous me donne l'exception suivante sur la dernière ligne:
InvalidOperationException: "variable non liée: valeur"
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);
Le contenu de HandleMoveRequested.rb sont:
class HandleMoveRequested
def handle(msg)
System::Console.WriteLine msg.x
System::Console.WriteLine msg.y
end
end
En fait, je veux juste être en mesure de passer un objet entièrement dynamique dans la méthode « poignée » de cet objet Ruby et avoir de pouvoir accéder aux propriétés « x » et « y » sur cet objet. Suis-je aboiements le mauvais arbre?
La solution
Je l'ai testé votre code (comme-est) après la construction de la dernière de la source: http://github.com/ironruby/ironruby
S'il vous plaît essayer. Je suppose que le correctif sera inclus dans la prochaine Build RC (RC3?) Et plus tard.
Lorsque vous construisez de la source, assurez-vous de construire la "V4 Release" construire avec Ruby4.sln
Modifier: me Tested, cela fonctionne sans problème dans le dernier