我在这里学到了stackoverflow,您可以轻松实现Win表单的c#和Web浏览器控件中加载的javascript之间的双向访问。然后让我问你是否可以使用任何免费的C#组件在C#和IronRuby之间进行类似的双向访问?虽然我搜索了如何在.net平台中对两种语言进行双向访问,但是它们中的任何一种都没有像我先描述的那样简单。
答案 0 :(得分:2)
IronRuby库让您可以做到这一点。只需引用IronRuby.dll和IronRuby.Libraries.dll程序集,添加using IronRuby;
然后就可以执行以下操作:
var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(fileName);
然后,您可以查询scope
某些变量,或获取所有变量的列表。
答案 1 :(得分:1)
@svick是对的,但我只想详细说明数据从C#流向IronRuby并返回的示例。
var engine = Ruby.CreateEngine();
engine.ExecuteFile("../../test.rb");
dynamic ruby = engine.Runtime.Globals;
dynamic hello = ruby.Hello.@new("Hello from Ruby!");
hello.set_text(textBox1);
和test.rb中的Ruby代码
class Hello
def initialize text
@text = text
end
def set_text text_box
text_box.Text = @text
end
end
PS。从http://ironruby.net/download/安装IronRuby后,出于某种原因,只能在C:\ WINDOWS \ Microsoft.NET \ assembly \ GAC_MSIL \中找到IronRuby.dll,IronRuby.Libraries.dll和Microsoft.Scripting.dll DS。