Mark,

That's what I did. You did succeed at registering the component,
because AddComponentLifeStyle does not check if you pass valid types.
However if you tried to resolve the component you would get an
exception then.

Krzysztof

On 26 Sty, 14:23, Mark Richman <[email protected]> wrote:
> Try commenting out the <component> line in web.config, and uncomment
> the line in Global.asax. You'll see it works fine using it that way.
> So, what's wrong with my syntax in the web.config? This worked until I
> upgraded Castle.
>
> On Jan 26, 8:19 am, Krzysztof Ko¼mic (2) <[email protected]> wrote:
>
> > Mark,
>
> > Windsor is fine.
> > Your class does not implement that interface.
>
> > Krzysztof
>
> > On 26 Sty, 13:48, Mark Richman <[email protected]> wrote:
>
> > > I uploaded a test website that demonstrates the issue. Please 
> > > seehttp://groups.google.com/group/castle-project-users/web/WindsorTest.zip
>
> > > Thank you!
>
> > > On Jan 26, 8:08 am, Krzysztof Ko 1/4 mic <[email protected]>
> > > wrote:
>
> > > > were you able to create a reproduction you could post here?
>
> > > > Krzysztof
>
> > > > On 2010-01-26 02:18, Mark Richman wrote:
>
> > > > > Oddly, this imperative version works perfectly:
>
> > > > > container.AddComponentLifeStyle("entityurlsprovider.picker",
> > > > >                                      typeof
> > > > > (IWebAdminEntityPickerEntityUrlsProvider<>),
> > > > >                                      typeof
> > > > > (WebAdminEntityPickerEntityUrlsProvider<>),
> > > > >                                      LifestyleType.Transient);
>
> > > > > the declarative version still fails though...syntax error?
>
> > > > > <component id="entityurlsprovider.picker"
>
> > > > > service="KGroup.KMS.Administration.IWebAdminEntityPickerEntityUrlsProvider`1,
> > > > > KGroup.KMS.Core"
>
> > > > > type="KGroup.KMS.Administration.Common.WebAdminEntityPickerEntityUrlsProvider`1,
> > > > > KGroup.KMS.Core"
> > > > >                   lifestyle="transient"/>
>
> > > > > Thanks,
> > > > > Mark
>
> > > > > On Jan 25, 5:24 pm, Krzysztof Ko 1/4 mic<[email protected]>
> > > > > wrote:
>
> > > > >> By reproduction I mean a minimalistic solution that exhibits the 
> > > > >> issue.
> > > > >> I just tried to re-create your scenario and I hate to tell you that 
> > > > >> it
> > > > >> works on my machine.
>
> > > > >> The fact that the exception message says
>
> > > > >> Type ''
>
> > > > >> is misleading.
> > > > >> It means you used open generic type. If the type was indeed not being
> > > > >> found, an other exception would be thrown.
> > > > >> Try to isolate the issue and post the solution here.
> > > > >> At this point I can't really think of anything that could cause this 
> > > > >> issue.
>
> > > > >> Krzysztof
>
> > > > >> On 2010-01-25 23:20, Mark Richman wrote:
>
> > > > >>> What do you mean by reproduction? There is nothing I'm doing
> > > > >>> explicitly in my code to try loading the class other than new
> > > > >>> WindsorContainer(new XmlInterpreter()). From there, the Windsor code
> > > > >>> takes over and eventually throws an exception. Seems to me like the
> > > > >>> method for parsing the web.config<component>    element may have
> > > > >>> changed, causing an empty string to be passed as the 'type' argument
> > > > >>> to
> > > > >>> Castle.Windsor.Installer.DefaultComponentInstaller.AssertImplementsService
> > > > >>> (id,service,type). Like I mentioned, I have made zero changes to my
> > > > >>> code, other than replacing the Castle*.dll files.
>
> > > > >>> On Jan 25, 5:00 pm, Krzysztof Ko 1/4 mic<[email protected]>
> > > > >>> wrote:
>
> > > > >>>> Stack trace is not really helpful here.
> > > > >>>> Can you create a reproduction and post it?
> > > > >>>> This does not really seem to make much sense to me
>
> > > > >>>> Krzysztof
>
> > > > >>>> On 2010-01-25 22:42, Mark Richman wrote:
>
> > > > >>>>> Maybe this stack trace will help:
>
> > > > >>>>> [Exception: Could not set up component 
> > > > >>>>> 'entityurlsprovider.picker'.
> > > > >>>>> Type '' does not implement service
> > > > >>>>> 'KGroup.KMS.Administration.IWebAdminEntityPickerEntityUrlsProvider`1,
> > > > >>>>> KGroup.KMS.Core, Version=1.0.0.0, Culture=neutral,
> > > > >>>>> PublicKeyToken=null']
>
> > > > >>>>> Castle.Windsor.Installer.DefaultComponentInstaller.AssertImplementsService
> > > > >>>>> (String id, Type service, Type type) +255
> > > > >>>>>       
> > > > >>>>> Castle.Windsor.Installer.DefaultComponentInstaller.SetUpComponents
> > > > >>>>> (IConfiguration[] configurations, IWindsorContainer container) 
> > > > >>>>> +348
> > > > >>>>>       Castle.Windsor.Installer.DefaultComponentInstaller.SetUp
> > > > >>>>> (IWindsorContainer container, IConfigurationStore store) +124
> > > > >>>>>       Castle.Windsor.WindsorContainer.RunInstaller() +98
> > > > >>>>>       
> > > > >>>>> Castle.Windsor.WindsorContainer..ctor(IConfigurationInterpreter
> > > > >>>>> interpreter) +167
> > > > >>>>>       Global.Application_Start(Object sender, EventArgs e)
>
> > > > >>>>> On Jan 25, 4:33 pm, Mark Richman<[email protected]>     
> > > > >>>>> wrote:
>
> > > > >>>>>> I did a Clean Solution, Rebuild Solution. I even deleted the 
> > > > >>>>>> contents
> > > > >>>>>> of /bin and rebuilt. I get the same error.
>
> > > > >>>>>> On Jan 25, 4:25 pm, Krzysztof Ko 1/4 
> > > > >>>>>> mic<[email protected]>
> > > > >>>>>> wrote:
>
> > > > >>>>>>> Looks like it somehow does not pick your implementation type. 
> > > > >>>>>>> Do Clean
> > > > >>>>>>> in Visual Studio, and then Build all projects
>
> > > > >>>>>>> On 2010-01-25 22:16, Mark Richman wrote:
>
> > > > >>>>>>>> I am trying to upgrade from these versions:
>
> > > > >>>>>>>> Castle.Core 1.1.0.542
> > > > >>>>>>>> Castle.DynamicProxy2 2.1.0.5642
> > > > >>>>>>>> Castle.MicroKernel 2.0.0.5642
> > > > >>>>>>>> Castle.Windsor 2.0.0.5642
>
> > > > >>>>>>>> to the current versions:
>
> > > > >>>>>>>> Castle.Core 1.2.0.6623
> > > > >>>>>>>> Castle.DynamicProxy2 2.2.0.6628
> > > > >>>>>>>> Castle.MicroKernel 2.1.0.6655
> > > > >>>>>>>> Castle.Windsor 2.1.0.6655
>
> > > > >>>>>>>> I get the following exception at startup:
>
> > > > >>>>>>>> Could not set up component 'entityurlsprovider.picker'. Type 
> > > > >>>>>>>> '' does
> > > > >>>>>>>> not implement service
> > > > >>>>>>>> 'KGroup.KMS.Administration.IWebAdminEntityPickerEntityUrlsProvider`1,
> > > > >>>>>>>> KGroup.KMS.Core, Version=1.0.0.0, Culture=neutral,
> > > > >>>>>>>> PublicKeyToken=null'
>
> > > > >>>>>>>> in this line of code in Application_Start:
>
> > > > >>>>>>>> var container = new WindsorContainer(new XmlInterpreter());
>
> > > > >>>>>>>> for this configuration:
>
> > > > >>>>>>>> <component id="entityurlsprovider.picker"
> > > > >>>>>>>> service="KGroup.KMS.Administration.IWebAdminEntityPickerEntityUrlsProvider`1,
> > > > >>>>>>>> KGroup.KMS.Core"
> > > > >>>>>>>> type="KGroup.KMS.Administration.Common.WebAdminEntityPickerEntityUrlsProvider`1,
> > > > >>>>>>>> KGroup.KMS.Core"
> > > > >>>>>>>> lifestyle="transient"/>
>
> > > > >>>>>>>> I have not changed a single line of code, other than swapping 
> > > > >>>>>>>> out the
> > > > >>>>>>>> dll's above and recompiling without errors.
>
> > > > >>>>>>>> Is there a breaking change I should be aware of?
>
> > > > >>>>>>>> Thanks,
> > > > >>>>>>>> Mark
>
>

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

Reply via email to