Implementing get_Item in Ruby for access in .NET

Hi there.

We’re trying to access a ruby implementation of a Hash from .NET but
having trouble getting the following snip to work

require ‘Dependencies.dll’
class ParameterList
include Namespace::IParameterList


   def initialize
           @parameter_hash =

   def []= key, value
           @parameter_hash[key] = value

   def [] key

   def get_Item key


and on the .NET side:

public interface IParameterList : IEnumerable
int Count { get; }
IParameter this[string name] { get; }
IParameter this[int index] { get; }
IEnumerator GetEnumerator();
event ParameterValueChangedEventHandler OnParameterValueChanged;

When we call it from .NET with the following code (The parameters
object is an instance of the Ruby ParamterList class ):
parameter = parameters[“Key”];

The error returned is
NoMethodError: undefined method `get_Item’ for

Is it possible to have a Ruby object with an indexer which is callable
from C#?


I don’t think there’s any attempt right now to identify an indexer when
overriding virtual methods. This means that the normal Rubification
rules kick in and you get

def item key
def item= key, value

The second of these, of course, isn’t usable from within Ruby – though
I think it should still work correctly when called by C# through the

Obviously, this should be entered as a work item on Codeplex if it isn’t
there already.

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