After inserting the code you requested it still fails with
exception...what is so weird is when I register on an
IWindsorContainer instance things work as expected!
I am going to pull the latest and see what happens...will post back.
 [Fact]
        public void facility_fail()
        {
            var kernel = new DefaultKernel();
            kernel.AddFacility<TypedFactoryFacility>();
 
kernel.Register(Component.For<IGenericFactory>().AsFactory());
            var factoryHandler =
kernel.GetHandler(typeof(IGenericFactory));
 
factoryHandler.ComponentModel.Interceptors.Count.should_be_greater_than(0);


            var factory = kernel.Resolve<IGenericFactory>(); //throws
exception

        }

        public interface IGenericFactory
        {
            T Create<T>();

        }

On Jul 3, 3:25 pm, Krzysztof Koźmic <[email protected]>
wrote:
> Man, that is bizarre.
>
> And which version are you using exactly?
> Would you care to check out the latest?
> Also if you could put the following code before resolve:
>
> var factoryHandler = kernel.GetHandler(typeof(IGenericFactory));
> Assert.IsGreaterThanZero(factoryHandler.ComponentModel.Interceptors.Count());
>
> On 4/07/2010 5:57 AM, Mike Nichols wrote:
>
> > Hi Krzysztof ,
>
> > On 64bit Win 2k8 R2 server this throws an exception:
>
> > [Fact]
> > public void facility_fail()
> > {
> >    var kernel = new DefaultKernel();
> >    kernel.AddFacility<TypedFactoryFacility>();
> >    kernel.Register(Component.For<IGenericFactory>().AsFactory());
> >    var factory = kernel.Resolve<IGenericFactory>();//throws exception
> > (see below)
> > }
> > public interface IGenericFactory
> > {
> >    T Create<T>();
> > }
>
> > STACK TRACE:
> > Castle.MicroKernel.ComponentRegistrationException: Type
> > Cei.MaterialsTesting.Web.Server.Specs.facility_specs+IGenericFactory
> > is abstract.
> >   As such, it is not possible to instansiate it as implementation of
> > Cei.MaterialsTesting.Web.Server.Specs.facility_specs+IGenericFactory
> > service
> > at
> > Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstance(CreationContext
> > context, Object[] arguments, Type[] signature) in c:\TeamCity
> > \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> > \ComponentActivator\DefaultComponentActivator.cs: line 105
> > at
> > Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext
> > context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> > \Castle.Windsor\MicroKernel\ComponentActivator
> > \DefaultComponentActivator.cs: line 91
> > at
> > Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext
> > context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> > \Castle.Windsor\MicroKernel\ComponentActivator
> > \DefaultComponentActivator.cs: line 67
> > at
> > Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext
> > context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> > \Castle.Windsor\MicroKernel\ComponentActivator
> > \AbstractComponentActivator.cs: line 75
> > at
> > Castle.MicroKernel.Lifestyle.SingletonLifestyleManager.Resolve(CreationContext
> > context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> > \Castle.Windsor\MicroKernel\Lifestyle\SingletonLifestyleManager.cs:
> > line 48
> > at
> > Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext
> > context, Boolean track, Boolean instanceRequired) in c:\TeamCity
> > \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> > \Handlers\DefaultHandler.cs: line 66
> > at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
> > context, Boolean instanceRequired) in c:\TeamCity\buildAgent\work
> > \1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel\Handlers
> > \AbstractHandler.cs: line 202
> > at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
> > context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> > \Castle.Windsor\MicroKernel\Handlers\AbstractHandler.cs: line 173
> > at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler,
> > Type service, IDictionary additionalArguments) in c:\TeamCity
> > \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> > \DefaultKernel.cs: line 944
> > at Castle.MicroKernel.DefaultKernel.get_Item(Type service) in c:
> > \TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor
> > \MicroKernel\DefaultKernel_Resolve.cs: line 64
> > at Castle.MicroKernel.DefaultKernel.Resolve(Type service) in c:
> > \TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor
> > \MicroKernel\DefaultKernel_Resolve.cs: line 197
> > at Castle.MicroKernel.DefaultKernel.Resolve() in c:\TeamCity\buildAgent
> > \work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> > \DefaultKernel_Resolve.cs: line 154
> > at
> > Cei.MaterialsTesting.Web.Server.Specs.facility_specs.facility_fail()
> > in facility_specs.cs: line 49
> > On Jul 2, 4:25 pm, Krzysztof Koźmic<[email protected]>
> > wrote:
>
> >> That does not seem right. Are you sure you called .AsFactory() in the
> >> other case as well?
> >> Can you create a test case for that?
>
> >> Krzysztof
>
> >> On 3/07/2010 9:02 AM, Mike Nichols wrote:
>
> >>> When trying to resolve a interface-based typed factory from the kernel
> >>> (as the docs on wiki show) I get the error below using
> >>> kernel.Resolver<IUrlResolverFactory>().
> >>> When running the same code resolving from
> >>> container.Resolver<IUrlResolverFactory>() everything works as
> >>> expected.
>
> >>> I am running Castle.Core/Castle.Windsor from about 3 weeks ago.
>
> >>> Bug?
>
> >>> Castle.MicroKernel.ComponentRegistrationException: Type
> >>> Cei.MaterialsTesting.Web.Services.Navigation.IUrlResolverFactory is
> >>> abstract.
> >>>    As such, it is not possible to instansiate it as implementation of
> >>> Cei.MaterialsTesting.Web.Services.Navigation.IUrlResolverFactory
> >>> service
> >>> at
> >>> Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.CreateInstance(CreationContext
> >>> context, Object[] arguments, Type[] signature) in c:\TeamCity
> >>> \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> >>> \ComponentActivator\DefaultComponentActivator.cs: line 105
> >>> at
> >>> Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.Instantiate(CreationContext
> >>> context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> >>> \Castle.Windsor\MicroKernel\ComponentActivator
> >>> \DefaultComponentActivator.cs: line 91
> >>> at
> >>> Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.InternalCreate(CreationContext
> >>> context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> >>> \Castle.Windsor\MicroKernel\ComponentActivator
> >>> \DefaultComponentActivator.cs: line 67
> >>> at
> >>> Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(CreationContext
> >>> context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> >>> \Castle.Windsor\MicroKernel\ComponentActivator
> >>> \AbstractComponentActivator.cs: line 75
> >>> at
> >>> Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.Resolve(CreationContext
> >>> context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> >>> \Castle.Windsor\MicroKernel\Lifestyle\AbstractLifestyleManager.cs:
> >>> line 42
> >>> at
> >>> Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext
> >>> context, Boolean track, Boolean instanceRequired) in c:\TeamCity
> >>> \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> >>> \Handlers\DefaultHandler.cs: line 66
> >>> at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
> >>> context, Boolean instanceRequired) in c:\TeamCity\buildAgent\work
> >>> \1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel\Handlers
> >>> \AbstractHandler.cs: line 202
> >>> at Castle.MicroKernel.Handlers.AbstractHandler.Resolve(CreationContext
> >>> context) in c:\TeamCity\buildAgent\work\1ab5e0b25b145b19\src
> >>> \Castle.Windsor\MicroKernel\Handlers\AbstractHandler.cs: line 173
> >>> at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler,
> >>> Type service, IDictionary additionalArguments) in c:\TeamCity
> >>> \buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> >>> \DefaultKernel.cs: line 944
> >>> at Castle.MicroKernel.DefaultKernel.get_Item(Type service) in c:
> >>> \TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor
> >>> \MicroKernel\DefaultKernel_Resolve.cs: line 64
> >>> at Castle.MicroKernel.DefaultKernel.Resolve(Type service) in c:
> >>> \TeamCity\buildAgent\work\1ab5e0b25b145b19\src\Castle.Windsor
>
> >>> \MicroKernel\DefaultKernel_Resolve.cs: line 197
> >>> at Castle.MicroKernel.DefaultKernel.Resolve() in c:\TeamCity\buildAgent
> >>> \work\1ab5e0b25b145b19\src\Castle.Windsor\MicroKernel
> >>> \DefaultKernel_Resolve.cs: line 154
> >>> at
> >>> Cei.MaterialsTesting.Web.Server.Specs.facility_specs.it_should_return_null_resolver_when_not_registered()
> >>> in facility_specs.cs: line 37

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Development List" 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-devel?hl=en.

Reply via email to