Thanks Mauricio. Now that test pass, but if you register Service before its dependencies it still fails.
On Fri, Apr 2, 2010 at 10:43 PM, Mauricio Scheffer < [email protected]> wrote: > Fixed in > http://github.com/castleproject/Castle.InversionOfControl/commit/80bb75a69772396dbc2ad56a9753a5dc5db9b5dd > > Can you give it a try? > > Cheers, > Mauricio > > On Apr 2, 9:32 pm, Germán Schuager <[email protected]> wrote: > > Hi, I have the following class: > > > > public class Service > > { > > public ComponentX X { get; private set; } > > public ComponentY Y { get; private set; } > > public ComponentA A { get; private set; } > > > > public Service(ComponentA a) > > { > > A = a; > > } > > > > public Service(ComponentX x, ComponentY y) > > { > > X = x; > > Y = y; > > } > > } > > > > and the following test: > > > > [Test] > > public void > Kernel_should_select_ctor_with_available_dependencies() > > { > > var kernel = new DefaultKernel(); > > kernel.AddComponent<ComponentX>(); > > kernel.AddComponent<ComponentY>(); > > kernel.AddComponent<Service>(); > > > > var service = kernel.Resolve<Service>(); > > > > Assert.That(service.A, Is.Null); > > Assert.That(service.X, Is.Not.Null); > > Assert.That(service.Y, Is.Not.Null); > > } > > > > The test fails with this message: > > > > TestCase > > > 'Castle.MicroKernel.Tests.xxx.Kernel_should_select_ctor_with_available_depe > ndencies' > > failed: Castle.MicroKernel.Handlers.HandlerException : Can't create > > component 'Castle.MicroKernel.Tests.xxx+Service' as it has dependencies > to > > be satisfied. > > Castle.MicroKernel.Tests.xxx+Service is waiting for the following > > dependencies: > > > > Services: > > - Castle.MicroKernel.Tests.xxx+ComponentA which was not registered. > > Handlers\DefaultHandler.cs(114,0): at > > > Castle.MicroKernel.Handlers.DefaultHandler.AssertNotWaitingForDependency() > > Handlers\DefaultHandler.cs(53,0): at > > Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext > > context, Boolean track) > > Handlers\AbstractHandler.cs(189,0): at > > Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext > context) > > DefaultKernel.cs(936,0): at > > Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type > > service, IDictionary additionalArguments) > > DefaultKernel.cs(918,0): at > > Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type > > service) > > DefaultKernel_Resolve.cs(68,0): at > > Castle.MicroKernel.DefaultKernel.get_Item(Type service) > > DefaultKernel_Resolve.cs(199,0): at > > Castle.MicroKernel.DefaultKernel.Resolve(Type service) > > DefaultKernel_Resolve.cs(157,0): at > > Castle.MicroKernel.DefaultKernel.Resolve[T]() > > BestConstructorTestCase.cs(213,0): at > > > Castle.MicroKernel.Tests.xxx.Kernel_should_select_ctor_with_available_depen > dencies() > > > > Is this behavior by design? > > I don't want to (cannot) register ComponentA in the kernel. How can I > tell > > MK to use the second ctor? > > -- > 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]<castle-project-users%[email protected]> > . > 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 [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.
