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?

Était-ce utile?

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top