Ruby Instance of C# Class Isn't Really the C# Class


I have a class defined in C# which I’m creating in Ruby and returning;
C# adds it to an array. It’s simple (honest).

My setup is simple: the main project, and a class library called
“SharedClasses.” Here’s a class:

public class SimpleItem
public string Name { get; set; }
public int Value { get; set; }

    public SimpleItem(string name, int value)
        this.Name = name;
        this.Value = value;

Okay, nothing special here. Now, in Ruby, here’s the script I want to

require ‘SharedClasses.dll’
include SharedClasses“Red Gem”, 100);

What I want to achieve, is to return the instance created back to C#,
add it to a List.

I can’t do it. Currently, I get an InvalidOperationException: “can’t
convert SharedClasses::SimpleItem into SharedClasses::SimpleItem”

Here’s the code I use to create the Ruby instance:

var engine = Ruby.CreateEngine();
var newItem = engine.Execute(ruby);

I posted a Stack Overflow question for a more complex version of this
problem (this is the simplest case I could distill). Under other
circumstances, I can see that the two instances are the same, except
context (one is Default and one is LoadNeither).

Full post is here:

What am I doing wrong?


P.S. Visual Studio 2012 solution zip file, including IronRuby 1.13 via
NuGet, is available here:

Hi Ashiq,

I remember running into something similar, I think I needed to use:

load_assembly ‘SharedClasses.dll’

Hi Brandon,

Thanks, it works like a charm. I would love to know why, though :slight_smile:

The working syntax was actually without the .dll extension:

If you’re on Stack Overflow, feel free to reply to my answer (so you can
get the rep for it). If not, I will reply myself, so that it’s forever



This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs