Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
是否有免费的C#组件类为C#代码提供从文件加载IronRuby代码的方法?_C#_Ironruby - Fatal编程技术网

是否有免费的C#组件类为C#代码提供从文件加载IronRuby代码的方法?

是否有免费的C#组件类为C#代码提供从文件加载IronRuby代码的方法?,c#,ironruby,C#,Ironruby,我在这里了解到,您可以轻松实现Win表单的c#和web浏览器控件中加载的javascript之间的双向访问。那么让我问一下,您是否可以使用任何免费的C组件在C#和IronRuby之间进行类似的双向访问?尽管我在.net平台上搜索了如何在这两种语言之间进行双向访问,但它们中的任何一种都不像我前面描述的那样简单。IronRuby库允许您这样做。只需参考IronRuby.dll和IronRuby.Libraries.dll程序集,使用IronRuby添加然后您可以执行以下操作: var engine

我在这里了解到,您可以轻松实现Win表单的c#和web浏览器控件中加载的javascript之间的双向访问。那么让我问一下,您是否可以使用任何免费的C组件在C#和IronRuby之间进行类似的双向访问?尽管我在.net平台上搜索了如何在这两种语言之间进行双向访问,但它们中的任何一种都不像我前面描述的那样简单。

IronRuby库允许您这样做。只需参考IronRuby.dll和IronRuby.Libraries.dll程序集,使用IronRuby添加
然后您可以执行以下操作:

var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(fileName);

然后,您可以查询特定变量的
范围,或获取所有变量的列表。

IronRuby库允许您这样做。只需参考IronRuby.dll和IronRuby.Libraries.dll程序集,使用IronRuby添加
然后您可以执行以下操作:

var engine = Ruby.CreateEngine();
var scope = engine.ExecuteFile(fileName);

然后,您可以查询特定变量的
范围,或获取所有变量的列表。

@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.在从I安装IronRuby后,由于某种原因,只能在C:\WINDOWS\Microsoft.NET\assembly\GAC\MSIL中找到IronRuby.dll、IronRuby.Libraries.dll和Microsoft.Scripting.dll\
DS.

@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.在从I安装IronRuby后,由于某种原因,只能在C:\WINDOWS\Microsoft.NET\assembly\GAC\MSIL中找到IronRuby.dll、IronRuby.Libraries.dll和Microsoft.Scripting.dll\
DS.

@oleksii非常感谢。您的样品可能暗示我不需要额外的组件来完成我想要的任务。它帮助我搜索类似的IronRuby示例。是的,有一些接口(可能是几种语言的默认实现)允许从C#运行其他语言。如果没有允许您运行Iron Ruby的默认组件,可能会有实现接口并允许运行Iron Ruby的独立库,如果您找到了,请不要忘记在此处发布答案。@oleksii,什么?我认为没有CLR你就无法运行IronRuby。这就是IronRuby而不是普通Ruby的意义所在。@svick我可能没听清楚,我说的是从C#动态调用IronRuby代码(不是IL)。任何.NET语言都需要运行时,但我的观点是,如果您想直接从C#运行Iron Ruby代码(同样不是IL),那么应该有一个桥,将该文件编译成IL并在CLR中执行。我只知道这样一座桥:铁蟒。“我不确定是否有铁红宝石,我想它是存在的。”奥列克西,那么我想我不明白你的意思。您所说的“将CLR与IronRuby结合使用”,这与C#无关。@oleksii非常感谢。您的示例可能暗示我不需要额外的组件来完成我想要的任务。它帮助我搜索类似的IronRuby示例。是的,有一些接口(可能是几种语言的默认实现)允许从C#运行其他语言。如果没有允许您运行Iron Ruby的默认组件,可能会有实现接口并允许运行Iron Ruby的独立库,如果您找到了,请不要忘记在此处发布答案。@oleksii,什么?我认为没有CLR你就无法运行IronRuby。这就是IronRuby而不是普通Ruby的意义所在。@svick我可能没听清楚,我说的是从C#动态调用IronRuby代码(不是IL)。任何.NET语言都需要运行时,但我的观点是,如果您想直接从C#运行Iron Ruby代码(同样不是IL),那么应该有一个桥,将该文件编译成IL并在CLR中执行。我只知道这样一座桥:铁蟒。“我不确定是否有铁红宝石,我想它是存在的。”奥列克西,那么我想我不明白你的意思。您刚才说的“将CLR与IronRuby一起使用”,这与C#无关。非常感谢。这两个答案都适用于IronRuby 1.0。非常感谢。这两个答案都适用于IronRuby 1.0。非常感谢。该代码在IronRuby 1.0中运行良好。我将检查IronRuby中可访问的C#类的对象。整个.Net都可以从IronRuby访问,您不需要任何C#代码来使用它们。非常感谢。该代码在IronRuby 1.0中运行良好。我将检查IronRuby中可访问的C#类的对象。整个.Net都可以从IronRuby访问,您不需要任何C#代码来使用它们。