tags:

views:

330

answers:

1

Hello. I have created a small C# class in a library.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace helloWorldLib
{
    public class Greeter
    {
        public string SayHelloWorld(string name)
        {
            return "Hello world " + name;
        }
    }
}

The library is located in

C:\Documents and Settings\myUser\My Documents\Visual Studio 2008\Projects\Project1\helloWorldLib\bin\Debug\helloWorldLib.dll

How would you call SayHelloWorld from an IronRuby script?

I know this seems very simple, but I cannot seem to find a consistent code example after much research.

Thanks so much!

+4  A: 

The first thing to pay attention is that I'm not sure how IronRuby will handle namespaces that start with a lowercase letter. If I remember correctly, your namespace will simply be ignored, but i'm not sure about it. In the Ruby language, modules (which are the equivalent to C# namespaces) must start with a capital letter.

After you change the namespace to start with a capital letter - HelloWorldLib, you can use require or load_assembly to load your assembly.

require will load you assembly only once (even when the dll is required several times) and load_assembly will reload the assembly every time it is called.

This code will run your snippet:

require 'C:\Documents and Settings\myUser\My Documents\Visual Studio 2008\Projects\Project1\helloWorldLib\bin\Debug\helloWorldLib.dll'
greeter = HelloWorldLib::Greeter.new
greeter.say_hello_world "Michael"
Shay Friedman