Je souhaite utiliser IronRuby comme langage de script (comme Lua, par exemple) dans mon projet .NET. Par exemple, je veux pouvoir m'abonner à partir d'un script Ruby à des événements spécifiques, déclencher dans l'application hôte et appeler les méthodes Ruby à partir de celle-ci.IronRuby comme langage de script dans .NET
J'utilise ce code pour instancier le moteur IronRuby:
Dim engine = Ruby.CreateEngine()
Dim source = engine.CreateScriptSourceFromFile("index.rb").Compile()
' Execute it
source.Execute()
index.rb Supposant contient:
subscribe("ButtonClick", handler)
def handler
puts "Hello there"
end
Comment puis-je:
- Marque C# méthode Abonnez-vous (défini dans l'application hôte) visible depuis index.rb?
- Appeler plus tard gestionnaire méthode de l'application hôte?
Merci beaucoup. Mais une question demeure. Comment rendre disponible la classe Demo (pas l'instance) dans le code ruby de telle sorte que nous serions en mesure de l'instancier? Par exemple: d = Demo.new – rubyist111
Ajout de la réponse au corps de la réponse originale ci-dessus. –
Avec le dernier IronRuby (1.13, je crois), vous obtenez une collection de taille fixe pour 'searchPaths', ce qui déclenche une exception si vous essayez d'y ajouter. Vous devez créer votre propre collection à la place et copier les valeurs. – ashes999