[Ironruby-core] Dynamic Binding fails if abstract event not implemented

Xerxes Battiwalla xerxesb at gmail.com
Tue Jun 23 01:42:38 EDT 2009


great - thanks for the follow up, Tomas.

Is there a workaround we could use in the meantime? Really keen to get
Cucumber going ;)

-Xerx

On Tue, Jun 23, 2009 at 2:49 PM, Tomas
Matousek<Tomas.Matousek at microsoft.com> wrote:
> Definitely a bug. I've filed it under http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1628.
>
> Tomas
>
> -----Original Message-----
> From: ironruby-core-bounces at rubyforge.org [mailto:ironruby-core-bounces at rubyforge.org] On Behalf Of Xerxes Battiwalla
> Sent: Monday, June 22, 2009 9:04 PM
> To: ironruby-core at rubyforge.org
> Subject: [Ironruby-core] Dynamic Binding fails if abstract event not implemented
>
> Hi - I've just downloaded the latest IR source from GitHub and have a
> problem with what looks like a regression from v0.4.
>
> We have an interface defining an event which is implemented by an
> abstract class in C#. In Ruby, we create an implementation of the
> abstract class and call only a subset of methods as we require them.
> The 0.4 version played nicely and would only do the dynamic binding of
> methods we required at the time we called them, however the latest
> version of IR seems to try and bind the event (even though we don't
> hook up to it) and can't find an implementation in ruby so it throws a
> TypeLoadException citing the adder for the event does not have an
> implementation.
>
> A reproducible case is pasted below. Hoping someone would be able to
> shed light on whether this is intentional, and if so what we can do to
> implement the event in ruby.
>
> ***************************
> using System;
>
> namespace HelloWorldApp
> {
>    public interface IHelloWorld
>    {
>        event EventHandler SomeEvent;
>    }
>
>    public abstract class AbstractHelloWorld : IHelloWorld
>    {
>        public abstract event EventHandler SomeEvent;
>    }
> }
>
> ***************************
> require "HelloWorldApp.dll"
>
> class HelloWorlder < HelloWorldApp::AbstractHelloWorld
> end
>
> @hello_app = HelloWorlder.new #barf
>
> ***************************
> D:\source\dotnet\IronRubyInteropBug>ir ruby_test.rb
> mscorlib:0:in `_TermCreateClass': Method 'add_SomeEvent' in type
> 'IronRuby.Classes.AbstractHelloWorld$1' from assembly
> 'Snippets.scripting, Version=0.0.0.0, Culture=neutral,
> PublicKeyToken=null' does not have an implementation.
> (System::TypeLoadException)
>        from mscorlib:0:in `CreateTypeNoLock'
>        from mscorlib:0:in `CreateType'
>        from c:\IronRuby\ndp\fx\src\Core\Microsoft\Scripting\Actions\DynamicMetaObjectBinder.cs:107:in
> `Bind'
>        from c:\IronRuby\ndp\fx\src\Core\Microsoft\Scripting\Actions\CallSiteBinder.cs:85:in
> `BindCore'
>        from ruby_test.rb:6
>
>
> Any assistance appreciated - cheers!
>
> -xerx
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>


More information about the Ironruby-core mailing list