You may have just found the first bug in this release :( Do you mind logging this in Donjon.
Thanks John On Jan 13, 1:58 pm, Alexander Groß <[email protected]> wrote: > I've read his post, but that doesn't explain the error I receive. I > think the "old" factory code should remain working, no? Did I even > misunderstand/misuse the old factory? > > Here's a test case that fails (when pasted into > FactorySupportFluentTestCase.cs): > > class Configuration > { > } > > interface IUseConfiguration > { > } > > class UsesConfiguration : IUseConfiguration > { > public UsesConfiguration(Configuration config) > { > } > } > > [Test] > public void Should_resolve_factored_dependencies() > { > kernel.Register( > Component.For<Configuration> > ().LifeStyle.Singleton.UsingFactoryMethod(() => new Configuration()), > > Component.For<IUseConfiguration>().ImplementedBy<UsesConfiguration> > () > ); > > Assert.IsInstanceOf(typeof(IUseConfiguration), > kernel.Resolve<IUseConfiguration>()); > } > > On 13 Jan., 03:48, John Simons <[email protected]> wrote: > > > Krzysztof has done some changes to the factory facility that is > > shipped with Windsor 2.1, > > read:http://kozmic.pl/archive/2009/12/24/castle-typed-factory-facility-reb... > > > On Jan 13, 1:21 pm, Alexander Groß <[email protected]> wrote: > > > > Hi, > > > > I've tried updating my current work project to the new release and > > > found that everywhere I use the FactorySupportFacility my code breaks > > > in interesting ways. Basically it's a single FacilityException that > > > pops up. > > > > Here's a simplified use-case: > > > > Component.For<Configuration>() > > > .LifeStyle.Singleton > > > .UsingFactoryMethod(() => new Configuration(...)) > > > > Component.For<IUseTheConfiguration>() > > > .ImplementedBy<UsesConfiguration>() > > > > public class UsesConfiguration : IUseTheConfiguration > > > { > > > public UsesConfiguration(Configuration config) > > > { ... } > > > > } > > > > When I resolve an instance of IUseTheConfiguration the factory method > > > is first called from a GenericFactory<Configuration> that Windsor > > > provides. (I've set a breakpoint.) > > > > After the Configuration instance is created Windsor throws an > > > exception: > > > Factory '<some guid>' (method 'TheNamespace.Configuration Create()') > > > created instance of type TheNamespace.Configuration. > > > This type is not compatible with implementation type > > > TheNamespace.UsesConfiguration registered for this component > > > (TheNamespace.UsesConfiguration). > > > This may signify a bug. If it's the expected behavior, change the > > > registration of this component to cover this return type. > > > > The exception is thrown from FactoryActivator.Instantiate(), actually > > > at the latest possible point before returning the factored > > > Configuration instance. I suspect it is typeof > > > (UsesConfiguration).IsInstanceOfType(Configuration) that returns > > > false. > > > > Any ideas what's wrong with my code? > > > > Thanks, > > > Alex
-- 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.
