[Ironruby-core] How to implement a C# interface from Ruby ?

Thibaut Barrère thibaut.barrere at gmail.com
Tue Feb 10 03:38:51 EST 2009


Hi guys,
thanks for all the suggestions.

> Ah, me = dummy. You have that interface in C#, and the IronRuby code you're
> hosting can't see the interface. This should expose all the types in the
> current assembly:
>
>  engine.Runtime.LoadAssembly(GetType().Assembly);
>
That's what was missing! Thank you...

I'll have a closer look at the hosting tests, I guess this was probably in
there already.

thanks!

-- Thibaut

>
>
> ~js
>
>
>
> *From:* ironruby-core-bounces at rubyforge.org [mailto:
> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Jimmy Schementi
> *Sent:* Monday, February 09, 2009 5:43 PM
> *To:* ironruby-core at rubyforge.org
> *Subject:* Re: [Ironruby-core] How to implement a C# interface from Ruby ?
>
>
>
> How does it fail? Nothing fails for me, but how are you trying to use this
> Ruby class?
>
>
>
> (test.cs has your c# code in it):
>
>
>
> C:\dev>csc.exe /t:library test.cs
>
> Microsoft (R) Visual C# 2008 Compiler version 3.5.30729.715
>
> for Microsoft (R) .NET Framework version 3.5
>
> Copyright (C) Microsoft Corporation. All rights reserved.
>
>
>
> C:\dev>ir
>
> IronRuby 1.0.0.0 on .NET 2.0.50727.3521
>
> Copyright (c) Microsoft Corporation. All rights reserved.
>
>
>
> >>> require 'test.dll'
>
> => true
>
> >>> class Doer
>
> ...   include IDoSomething
>
> ...   def hello_world
>
> ...     puts "hello"
>
> ...   end
>
> ... end
>
> => nil
>
> >>> Doer
>
> => Doer
>
> >>> Doer.new
>
> => #<Doer:0x000005c>
>
> >>> Doer.new.hello_world
>
> hello
>
> => nil
>
>
>
> ~js
>
>
>
> *From:* ironruby-core-bounces at rubyforge.org [mailto:
> ironruby-core-bounces at rubyforge.org] *On Behalf Of *Thibaut Barrère
> *Sent:* Monday, February 09, 2009 5:23 PM
> *To:* ironruby-core
> *Subject:* [Ironruby-core] How to implement a C# interface from Ruby ?
>
>
>
> Hello again,
>
>
>
> I'm playing around with the idea of using IronRuby to implement plugins for
> a C#-based system (namely, CruiseControl.Net).
>
>
>
> I'm having some difficulties trying to figure out what the correct syntax
> for that would be. I'm currently using this to bootstrap the engine:
>
>
>
>                                   var reader = new
> StreamReader("plugin.rb");
>
>                                   var code = reader.ReadToEnd();
>
>                                   reader.Close();
>
>
>
>                                   var engine =
> IronRuby.Ruby.CreateEngine();
>
>                                   engine.Execute(code);
>
>
>
> The code inside plugin.rb is trying to implement an existing C# interface:
>
>
>
>           public interface IDoSomething {
>
>                       void HelloWorld();
>
>           }
>
>
>
> I tried:
>
>
>
> class Doer
>
>   include IDoSomething
>
>
>
>   def hello_world
>
>     puts "hello"
>
>   end
>
> end
>
>
>
> but it fails. What would be the correct syntax for a Ruby class to
> implement this ?
>
>
>
> thanks!
>
>
>
> -- Thibaut
>
> _______________________________________________
> Ironruby-core mailing list
> Ironruby-core at rubyforge.org
> http://rubyforge.org/mailman/listinfo/ironruby-core
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://rubyforge.org/pipermail/ironruby-core/attachments/20090210/f1f533a1/attachment.html>


More information about the Ironruby-core mailing list