我在这里了解到stackoverflow,您可以轻松实现Win表单的c#和web浏览器控件中加载的javascript之间的双向访问。那么让我问一下,您是否可以使用任何免费的C#组件在C#和IronRuby之间进行类似的双向访问?尽管我在.net平台上搜索了如何在这两种语言之间进行双向访问,但它们中的任何一种都没有像我之前描述的那样简单。
IronRuby库可以让您做到这一点。只需引用IronRuby.dll和IronRuby.Libraries.dll程序集,添加using IronRuby;
,就可以执行以下操作:
var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(fileName);
然后,您可以在scope
中查询某些变量,或者获取所有变量的列表。
@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。从安装IronRuby之后http://ironruby.net/download/由于某种原因,我只能在C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL中找到IronRuby.dll、IronRuby.Libraries.dll和Microsoft.Scripting.dll\DS-