2010-07-25 8 views

Répondre

1

En Ruby (et IronRuby), les variables doivent commencer par une lettre minuscule. Par conséquent, il suffit de changer la variable Traits-traits pour rendre votre code fonctionne:

var engine = IronRuby.Ruby.CreateEngine(); 
var scope = engine.CreateScope(); 
scope.SetVariable("traits", traits); 

dynamic result = engine.Execute("traits['Strength'].Score + traits['Dexterity'].Score", scope); 

(ce code fonctionne, j'ai vérifié). A propos, créer une variable qui commence par une lettre majuscule en fait une constante (c'est comme ça que fonctionne Ruby) et ajouter une constante à la portée est faite de manière légèrement différente.

+0

Cela expliquerait certainement le message d'erreur plutôt étrange que je voyais. Merci. –