I have created a git account, but there was some kind of problem when I clicked 
"fork" on the Wcf page - it says I have a fork in my repository, but when I 
click it I just get "404, this is not the page you are looking for", indicating 
something has gotten corrupted - which is odd considering it only took me 3 or 
4 clicks to do it!
I have posted a question to the admins but turnaround seems to take several 
hours - has anyone else had a similar experience?

Thanks

Adam Langley

 Please consider the environment before printing this email!

-----Original Message-----
From: castle-project-users@googlegroups.com 
[mailto:castle-project-users@googlegroups.com] On Behalf Of Krzysztof Kozmic
Sent: Wednesday, 11 May 2011 3:20 p.m.
To: castle-project-users@googlegroups.com
Subject: Re: Wcf Facility (server) can not correctly resolve open generic 
decorators

No worries Adam,

it's in the doco: 
http://docs.castleproject.org/How-to-submit-a-fix-to-any-Castle-Project.ashx

Krzysztof

On 11/05/2011 12:48 PM, Adam Langley wrote:
> Hi Krzysztof
>
> Yes I will do that tonight - I will try to base it on the WcfFacility.Tests 
> code and will email it.
> I have seen mention before of git push/pull something-or-other but I have 
> never done it before so I will stick to email unless someone can send me a 
> link on how to send my test code straight to git?
>
> Thank you
> Adam Langley
>
>
>   Please consider the environment before printing this email!
>
> From: castle-project-users@googlegroups.com 
> [mailto:castle-project-users@googlegroups.com] On Behalf Of Krzysztof Kozmic
> Sent: Wednesday, 11 May 2011 10:21 a.m.
> To: castle-project-users@googlegroups.com
> Cc: krzysz...@kozmic.pl
> Subject: RE: Wcf Facility (server) can not correctly resolve open generic 
> decorators
>
> Can you provide a failing test with the reproduction
> On 11/05/2011 8:17 AM, "Adam Langley"<alang...@winscribe.com>  wrote:
>> Hi Craig,
>>
>> Thanks for that - I will give it a try ASAP.
>> I thought it might be something like this - I noticed that when I forced a 
>> local resolution to occur, then a final 'ComponentRegistered' event was 
>> fired, which reported a 'closed generic' component... specialized to the 
>> generic argument (so in this case, IDecorator<IServiceNoDependencies>) - but 
>> it was not added to the list of 'registered components'.
>> I dont know enough about Castle to comprehend what kind of lifecycle is 
>> going on under the hood - it would be ideal if the WCF facility was able to 
>> open hosts for these components without 'eager' resolution.
>>
>> Thanks for the help Craig,
>>
>> Adam Langley
>>
>>
>> Please consider the environment before printing this email!
>>
>> From: castle-project-users@googlegroups.com 
>> [mailto:castle-project-users@googlegroups.com] On Behalf Of Craig Neuwirt
>> Sent: Wednesday, 11 May 2011 7:53 a.m.
>> To: castle-project-users@googlegroups.com
>> Cc: krzysz...@kozmic.pl
>> Subject: Re: Wcf Facility (server) can not correctly resolve open generic 
>> decorators
>>
>> Adam,
>>
>> I believe the problem relates to the open-generic registration. The Wcf 
>> Facility waits for the service to be in the ready state before it opens the 
>> host. In this case, the container shows the ServiceGenericDependency 
>> component as waiting for the IDecorator dependency. It would be nice for the 
>> container to handle this properly. I have seen this before and added an 
>> option to open the service host eagerly. This will not wait for the 
>> component to be reported as valid before opening the host. In your example, 
>> it resolved the issue
>>
>> var wcfFacility=XXXX
>> wcfFacility.Services.OpenServiceHostsEagerly = true;
>>
>> cheers,
>> craig
>>
>>
>> On May 7, 2011, at 1:24 AM, Adam Langley wrote:
>>
>>
>> Dear Castle groups,
>>
>> I have a WCF service which has a single constructor dependency - this 
>> dependency is 'generically decorated'.
>>
>> i.e. its constructor looks like this:
>>
>> public ServiceGenericDependency(IDecorator<IServiceNoDependencies>  arg2)
>> {
>> }
>>
>> My 'decorator' constructor looks like this:
>> public Decorator(T arg)
>> {
>> }
>> Castle has the typeof(IDecorator<>) registration, and the 
>> typeof(IServiceNoDependencies) registered.
>> PROBLEM: The WCF Facility fails to create the server.
>> IF I add a default constructor to my decorator class, then everything works.
>> IF I resolve the WCF service on the server (as a local component, i.e. take 
>> WCFFacility out of the equation) then everything works.
>> I have included a test program below - just reference WcfFacility + Castle. 
>> This is quite an urgent issue for me.
>> Thank you!
>> using Castle.Windsor;
>> using Castle.MicroKernel.Registration;
>> using Castle.Facilities.WcfIntegration;
>> using System.ServiceModel;
>> namespace DecoratorChains
>> {
>> class Program
>> {
>> static IWindsorContainer container;
>> static void Main(string[] args)
>> {
>> container = new WindsorContainer()
>> .AddFacility<WcfFacility>();
>> // this is my decorator, it is capable of decorating any service.
>> container.Register(Component.For(typeof(IDecorator<>)).ImplementedBy(typeof(Decorator<>)));
>> container.Register(
>> Component.For<IServiceGenericDependency>().ImplementedBy<ServiceGenericDependency>().LifeStyle.Transient
>> .AsWcfService(new DefaultServiceModel().AddEndpoints(
>> WcfEndpoint.BoundTo(new NetTcpBinding())
>> .At("net.tcp://localhost/Operations")
>> )
>> )
>> );
>> // this is my service that WILL BE decorated, then used as a constructor 
>> argument.
>> container.Register(Component.For<IServiceNoDependencies>().UsingFactoryMethod(()
>>  =>  new ServiceNoDependencies()));
>>
>> var client = ChannelFactory<IServiceGenericDependency>.CreateChannel(
>> new NetTcpBinding(), new EndpointAddress("net.tcp://localhost/Operations"));
>> // this passes
>> var cc = container.Resolve<IServiceGenericDependency>();
>>
>> // this fails
>> client.DoSomething();
>> }
>> }
>> interface IServiceNoDependencies
>> {
>> }
>> class ServiceNoDependencies : IServiceNoDependencies
>> {
>> }
>> interface IDecorator<T>
>> where T : class
>> {
>> }
>> class Decorator<T>  : IDecorator<T>
>> where T : class
>> {
>> ///<summary>
>> /// Remove this constructor and all tests will pass
>> ///</summary>
>> ///<param name="arg"></param>
>> public Decorator(T arg)
>> {
>> }
>> }
>> [ServiceContract]
>> interface IServiceGenericDependency
>> {
>> [OperationContract]
>> void DoSomething();
>> }
>> class ServiceGenericDependency : IServiceGenericDependency
>> {
>> public ServiceGenericDependency(IDecorator<IServiceNoDependencies>  arg2)
>> {
>> }
>> public void DoSomething()
>> {
>> }
>> }
>> }
>>
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Castle Project Users" group.
>> To post to this group, send email to castle-project-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> castle-project-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/castle-project-users?hl=en.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Castle Project Users" group.
>> To post to this group, send email to castle-project-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> castle-project-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/castle-project-users?hl=en.
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Castle Project Users" group.
>> To post to this group, send email to castle-project-users@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> castle-project-users+unsubscr...@googlegroups.com.
>> For more options, visit this group at 
>> http://groups.google.com/group/castle-project-users?hl=en.
>>

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to castle-project-users@googlegroups.com.
To unsubscribe from this group, send email to 
castle-project-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To post to this group, send email to castle-project-users@googlegroups.com.
To unsubscribe from this group, send email to 
castle-project-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/castle-project-users?hl=en.

Reply via email to