I have the following C# code, which I’m trying to translate to IronRuby
var host = new ServiceHost(typeof(MyService ));
host.AddServiceEndpoint(typeof(IWcfContract), new WSHttpBinding(), new
Uri(“…”));
This compiles fine.
My ruby translation looks like this:
host = ServiceHost.new( MyService ) # this line works fine
host.add_service_endpoint( IWcfContract, WSHttpBinding.new,
Uri.new(“…”) )
As far as I can tell, that’s a direct translation and how it should
work,
but the second line always throws
wrong number or type of arguments for `add_service_endpoint’
(ArgumentError)
Is it something to do with the way IronRuby resolves overloads? that
method
has about 8 different overloads, but I’ve tried
passing in strings (and all the other overload combinations), and
nothing
helps.
Note which may be of use: The second parameter is typed to accept
System.ServiceModel.Channels.Binding, whereas the WSHttpBinding is about
3
or 4 steps down (up?) the inheritance tree from that. Could that be
confusing it?
Note 2: I’m running this particular IronRuby =>
http://nbs.blob.core.windows.net/dlr/DLR.10369.release.zip
At any rate:
- How can I figure out which overload IronRuby is deciding to call?
- How can I make it select the correct overload if it’s not doing so?