我想在我的 .NET 项目中使用 IronRuby 作为脚本语言(例如Lua)。例如,我希望能够从 Ruby 脚本订阅特定事件,在宿主应用程序中触发,并从中调用 Ruby 方法。
我正在使用这段代码来实例化 IronRuby 引擎:
Dim engine = Ruby.CreateEngine()
Dim source = engine.CreateScriptSourceFromFile("index.rb").Compile()
' Execute it
source.Execute()
假设 index.rb 包含:
subscribe("ButtonClick", handler)
def handler
puts "Hello there"
end
我如何能:
- 使 C# 方法订阅(在主机应用程序中定义)从 index.rb 可见?
- 从主机应用程序调用稍后的处理程序方法?