I've been meaning to ask this for a while now.
Can I implement an event that is defined on an interface because whichever
way I try it just won't work.
public interface IHaveAnEvent { event EventHandler SomeEvent; }
class EventImplementor
include IHaveAnEvent
# what now? I can't find any test cases for interface to see how it can be
done.
end
---
Met vriendelijke groeten - Best regards - Salutations
Ivan Porto Carrero
Blog: http://flanders.co.nz
Twitter: http://twitter.com/casualjim
Author of IronRuby in Action (http://manning.com/carrero)
On Tue, Jun 23, 2009 at 6:03 AM, Xerxes Battiwalla <[email protected]>wrote:
> 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
> [email protected]
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
_______________________________________________
Ironruby-core mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/ironruby-core