1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
using System;
using Microsoft.Scripting.Hosting;
using IronRuby;

namespace IronRubyExample
{
    class Program
    {
        static void Main(string[] args)
        {
            var engine = Ruby.CreateEngine();
            var scope = engine.CreateScope();
            var rubyscript = @"
puts 'In IronRuby, I can call reverse...'
puts self.csharpstring.reverse

# return the string back to the CLR...
self.csharpstring
";
            scope.SetVariable("csharpstring", "Hello World.");
            dynamic str = engine.Execute(rubyscript, scope);
            try
            {
                Console.WriteLine(str.reverse());
            }
            catch (Exception e)
            {
                Console.WriteLine("Can't call reverse in CLR. {0}", e.Message);
            }
            Console.ReadLine();
        }
    }
}