Forum: IronRuby More WCF fail

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
3a9ff49a9e689dcbfc8242f05180cc31?d=identicon&s=25 Orion Edwards (Guest)
on 2009-03-12 00:44
(Received via mailing list)
Had time to get back to the WCF stuff: Here's the latest
class MyService
include IWcfContract

def ping(x)
x
end
end

uri = Uri.new "http://localhost:8700/MyService"
binding = WSHttpBinding.new
host = ServiceHost.new MyService
host.add_service_endpoint(IWcfContract.to_clr_type, binding, uri);


=> Now raises the following error (new and different from last time,
exciting!):

*The contract name 'IWcfContract' could not be found in the list of
contracts implemented by the service 'IronRuby.Builtins.RubyClass'.*
*
*
I also tried creating an abstract C# class as follows:

public abstract class WcfContractClass : IWcfContract
{
public abstract string Ping(string input);
}

and then having the ruby class do this:

class MyService < WcfContractClass

however the same error occurs. Still running the dlr nightly v12211
build...

Any ideas?
1e39a948a58f4569c53d971c2e120920?d=identicon&s=25 Ivan Porto carrero (casualjim)
on 2009-03-12 02:18
(Received via mailing list)
Let me know if you''re still having problems on saturday...because WCF
cannot be _that_ hard
Alternatively contact me off list.. to do some remote "pair"
programming...
this email address is my gtalk account or ask Hayley she's got my
contact
details as does almost anybody else that is involved in the NZ .NET user
groups.

For everybody else on the list.. I respond best to IM  or twitter
(casualjim) ;)
3a9ff49a9e689dcbfc8242f05180cc31?d=identicon&s=25 Orion Edwards (Guest)
on 2009-03-12 03:45
(Received via mailing list)
> Let me know if you''re still having problems on saturday...because WCF
> cannot be _that_ hard


WCF isn't hard... in C#. Thus far IronRuby's lack of support for
attributes
seems to be killing it though.


> Alternatively contact me off list.. to do some remote "pair"
> programming...
> this email address is my gtalk account or ask Hayley she's got my contact
> details as does almost anybody else that is involved in the NZ .NET user
> groups.
>

I'll have a go in the weekend if I get time and let you know. Cheers.

For everybody else on the list.. I respond best to IM  or twitter
> (casualjim) ;)
>

Consider yourself followed!
F983f0c990cba2fe743ef62a975ec99c?d=identicon&s=25 Curt Hagenlocher (Guest)
on 2009-03-12 18:48
(Received via mailing list)
There's no CLR Type object that can fully represent your Ruby class, so
you can't meaningfully pass the type to any API that wants to be able to
create an object from it.  This is still an area of active investigation
and thought for us.

From: ironruby-core-bounces@rubyforge.org
[mailto:ironruby-core-bounces@rubyforge.org] On Behalf Of Orion Edwards
Sent: Wednesday, March 11, 2009 4:44 PM
To: ironruby-core@rubyforge.org
Subject: [Ironruby-core] More WCF fail

Had time to get back to the WCF stuff: Here's the latest

class MyService
     include IWcfContract

     def ping(x)
          x
     end
end

uri = Uri.new "http://localhost:8700/MyService"
binding = WSHttpBinding.new
host = ServiceHost.new MyService
host.add_service_endpoint(IWcfContract.to_clr_type, binding, uri);


=> Now raises the following error (new and different from last time,
exciting!):

The contract name 'IWcfContract' could not be found in the list of
contracts implemented by the service 'IronRuby.Builtins.RubyClass'.

I also tried creating an abstract C# class as follows:

public abstract class WcfContractClass : IWcfContract
{
     public abstract string Ping(string input);
}

and then having the ruby class do this:

class MyService < WcfContractClass

however the same error occurs. Still running the dlr nightly v12211
build...

Any ideas?
1e39a948a58f4569c53d971c2e120920?d=identicon&s=25 Ivan Porto carrero (casualjim)
on 2009-03-12 19:55
(Received via mailing list)
But in the case of WCF this doesn't have to be the case right?
You can create a different behavior where you tell WCF how to create
instances and you can create a service host that also knows how to
handle
dynamic objects. After all if you can get an IoC container to provide
the
instances, surely you can hook IronRuby in there too.

Wouldn't creating a servicehostfactory, servicehost and behavior solve
the
problem?
I wasn't expecting to use the plain vanilla WCF stuff but rather with a
slightly customized infrastructure.
3a9ff49a9e689dcbfc8242f05180cc31?d=identicon&s=25 Orion Edwards (Guest)
on 2009-03-12 20:51
(Received via mailing list)
>
> Wouldn't creating a servicehostfactory, servicehost and behavior solve the
> problem?
> I wasn't expecting to use the plain vanilla WCF stuff but rather with a
> slightly customized infrastructure.
>

I don't have a particularly deep knowledge of WCF... I had been trying
to
search for how to do it with a non-standard servicehost, but hadn't
found
anything amongst all the mess of people asking simple questions :-(

Will try look for WCF -> IOC container related stuff and see if that
helps
F983f0c990cba2fe743ef62a975ec99c?d=identicon&s=25 Curt Hagenlocher (Guest)
on 2009-03-12 21:00
(Received via mailing list)
You are correct.  There’s no general problem with WCF; it’s just this
particular API that Orion is using that’s problematic.

From: ironruby-core-bounces@rubyforge.org
[mailto:ironruby-core-bounces@rubyforge.org] On Behalf Of Ivan Porto
Carrero
Sent: Thursday, March 12, 2009 11:54 AM
To: ironruby-core
Subject: Re: [Ironruby-core] More WCF fail

But in the case of WCF this doesn't have to be the case right?
You can create a different behavior where you tell WCF how to create
instances and you can create a service host that also knows how to
handle dynamic objects. After all if you can get an IoC container to
provide the instances, surely you can hook IronRuby in there too.

Wouldn't creating a servicehostfactory, servicehost and behavior solve
the problem?
I wasn't expecting to use the plain vanilla WCF stuff but rather with a
slightly customized infrastructure.

On Thu, Mar 12, 2009 at 6:15 PM, Curt Hagenlocher
<curth@microsoft.com<mailto:curth@microsoft.com>> wrote:

There’s no CLR Type object that can fully represent your Ruby class, so
you can’t meaningfully pass the type to any API that wants to be able to
create an object from it.  This is still an area of active investigation
and thought for us.



From:
ironruby-core-bounces@rubyforge.org<mailto:ironruby-core-bounces@rubyforge.org>
[mailto:ironruby-core-bounces@rubyforge.org<mailto:ironruby-core-bounces@rubyforge.org>]
On Behalf Of Orion Edwards
Sent: Wednesday, March 11, 2009 4:44 PM
To: ironruby-core@rubyforge.org<mailto:ironruby-core@rubyforge.org>
Subject: [Ironruby-core] More WCF fail



Had time to get back to the WCF stuff: Here's the latest



class MyService

     include IWcfContract



     def ping(x)

          x

     end

end



uri = Uri.new "http://localhost:8700/MyService"

binding = WSHttpBinding.new

host = ServiceHost.new MyService

host.add_service_endpoint(IWcfContract.to_clr_type, binding, uri);





=> Now raises the following error (new and different from last time,
exciting!):



The contract name 'IWcfContract' could not be found in the list of
contracts implemented by the service 'IronRuby.Builtins.RubyClass'.



I also tried creating an abstract C# class as follows:



public abstract class WcfContractClass : IWcfContract

{

     public abstract string Ping(string input);

}



and then having the ruby class do this:



class MyService < WcfContractClass



however the same error occurs. Still running the dlr nightly v12211
build...



Any ideas?

_______________________________________________
Ironruby-core mailing list
Ironruby-core@rubyforge.org<mailto:Ironruby-core@rubyforge.org>
http://rubyforge.org/mailman/listinfo/ironruby-core
1e39a948a58f4569c53d971c2e120920?d=identicon&s=25 Ivan Porto carrero (casualjim)
on 2009-03-12 22:21
(Received via mailing list)
Look at how they do it in Autofac and Ninject that code is easier to
follow
than the code from the castle project


2009/3/12 Orion Edwards <orion.edwards@gmail.com>
1e39a948a58f4569c53d971c2e120920?d=identicon&s=25 Ivan Porto carrero (casualjim)
on 2009-03-12 22:34
(Received via mailing list)
Hi Orion,

http://www.lostechies.com/blogs/jimmy_bogard/archi...

http://code.google.com/p/autofac/source/browse/tru...


cheers
Ivan
2009/3/12 Curt Hagenlocher <curth@microsoft.com>
This topic is locked and can not be replied to.