Is there any free C# component class to provide means for C# code to load IronRuby code from files? [closed]

StackOverflow https://stackoverflow.com/questions/9902696

  •  27-05-2021
  •  | 
  •  

Question

I learned here stackoverflow that you can easily achieve bidirectional access between c# of a Win form and javascript loaded in a web browser control. Then let me ask whether you can do similar bidirectional access between C# and IronRuby using any free C# component? Although I searched how to do bidirectional access between the 2 languages in .net platform,any of them does not bring the same simpleness as the way I described first.

Was it helpful?

Solution

@svick is right but I just want to elaborate with an example where data flows from C# to IronRuby and back.

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);

and the Ruby code in test.rb

class Hello
  def initialize text
    @text = text
  end

  def set_text text_box
    text_box.Text = @text
  end
end

PS. After installing IronRuby from http://ironruby.net/download/ I, for some reason, could only find the IronRuby.dll, IronRuby.Libraries.dll, and Microsoft.Scripting.dll in C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\ DS.

OTHER TIPS

The IronRuby library lets you do just that. Just reference the IronRuby.dll and IronRuby.Libraries.dll assemblies, add using IronRuby; and then you can do something like:

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

You can then query the scope for certain variables, or get a list of all variables.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top