Actually the AbstractHelloWorld is used as a work-around for implementing the interface directly in ruby (see http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=772), so implementing it in C# gives us no benefit.
I did try (in our codebase, i havent tested this particular example) removing the abstract modifier on SomeEvent in AbstractHelloWorld and leaving everything else as abstract on the interface, and I get the same failure for add_OnProgress on IronRuby::System::Object. -Xerx On Tue, Jun 23, 2009 at 4:51 PM, Tomas Matousek<[email protected]> wrote: > Could you derive from AbstractHelloWorld in C# and implement the abstract > event and then derive from this derived class in Ruby? > > Tomas > > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On Behalf Of Xerxes Battiwalla > Sent: Monday, June 22, 2009 10:43 PM > To: [email protected] > Subject: Re: [Ironruby-core] Dynamic Binding fails if abstract event not > implemented > > 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<[email protected]> wrote: >> Definitely a bug. I've filed it under >> http://ironruby.codeplex.com/WorkItem/View.aspx?WorkItemId=1628. >> >> Tomas >> >> -----Original Message----- >> From: [email protected] >> [mailto:[email protected]] On Behalf Of Xerxes Battiwalla >> Sent: Monday, June 22, 2009 9:04 PM >> To: [email protected] >> 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 >> [email protected] >> http://rubyforge.org/mailman/listinfo/ironruby-core >> >> _______________________________________________ >> 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 > > _______________________________________________ > 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
