Quiero utilizar IronRuby como lenguaje de scripting (como Lua, por ejemplo) en mi proyecto .NET. Por ejemplo, deseo poder suscribirme desde un script de Ruby a eventos específicos, activarlo en la aplicación de host y llamar a los métodos de Ruby.IronRuby como lenguaje de scripting en .NET
Estoy usando este código para instanciar el motor IronRuby:
Dim engine = Ruby.CreateEngine()
Dim source = engine.CreateScriptSourceFromFile("index.rb").Compile()
' Execute it
source.Execute()
Suponiendo index.rb contiene:
subscribe("ButtonClick", handler)
def handler
puts "Hello there"
end
Cómo hacer yo:
- Make C# método Suscribirse (definido en la aplicación de host) visible desde index.rb?
- Invocar más tarde manipulador método desde la aplicación host?
Muchas gracias. Pero queda una pregunta. ¿Cómo poner a disposición una clase de demostración (no instancia) dentro del código Ruby de forma tal que podamos instanciarla? Por ejemplo: d = Demo.new – rubyist111
Agregó la respuesta al cuerpo de la respuesta original anterior. –
Con el último IronRuby (1.13, creo), se obtiene una colección de tamaño fijo para 'searchPaths', que arroja una excepción si intentas agregar algo. En su lugar, debe crear su propia colección y copiar los valores. – ashes999