Hi,

Recently I tried to update to Windsor 3.0 in my project. Everything 
compiled, but when I started running my AutoMapper mappings that are also 
registered in the container couldn't be resolved anymore.
When I first tried to isolate the code in a new project, it worked. But 
then I added the TypedFactoryFacility and bang, exception.

This gist contains all the code needed to reproduce the problem: 
https://gist.github.com/1852705#file_windsor_automapper_test_fixture.cs

And here is the exception:

Castle.MicroKernel.ComponentActivator.ComponentActivatorException : 
ComponentActivator: could not instantiate WindsorAutoMapper.DummyMapper
  ----> System.Reflection.TargetInvocationException : Exception has been thrown 
by the target of an invocation.
  ----> Castle.MicroKernel.ComponentNotFoundException : *
No component for supporting the service System.String was found*

at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.
CreateInstanceCore(ConstructorCandidate constructor, Object[] arguments, 
Type implType)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.
CreateInstance(CreationContext context, ConstructorCandidate constructor, 
Object[] arguments)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.
InternalCreate(CreationContext context)
at Castle.MicroKernel.ComponentActivator.AbstractComponentActivator.Create(
CreationContext context, Burden burden)
at Castle.MicroKernel.Lifestyle.AbstractLifestyleManager.CreateInstance(
CreationContext context, Boolean trackedExternally)
at Castle.MicroKernel.Lifestyle.SingletonLifestyleManager.Resolve(
CreationContext context, IReleasePolicy releasePolicy)
at Castle.MicroKernel.Handlers.DefaultHandler.ResolveCore(CreationContext 
context, Boolean requiresDecommission, Boolean instanceRequired, ref Burden 
burden)
at Castle.MicroKernel.Handlers.DefaultHandler.Resolve(CreationContext 
context, Boolean instanceRequired)
at Castle.MicroKernel.DefaultKernel.ResolveComponent(IHandler handler, Type 
service, IDictionary additionalArguments, IReleasePolicy policy)
at Castle.MicroKernel.DefaultKernel.
Castle.MicroKernel.IKernelInternal.Resolve(Type service, IDictionary 
arguments, IReleasePolicy policy)
at Castle.Windsor.WindsorContainer.Resolve()
at WindsorAutoMapper.WindsorAutomapperTestFixture.
DummyMapperCanNotBeResolvedIfTheTypedFactoryFacilityIsRegistered() in 
WindsorAutomapperTestFixture.cs: line 
64<projectfile:20C263C0-C7BB-4EC9-8922-93F433E8A561%2Ff%3AWindsorAutomapperTestFixture.cs%3F64%3F1>
--TargetInvocationException
at System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo method, 
Object target, Object[] arguments, ref SignatureStruct sig, MethodAttributes
 methodAttributes, RuntimeType typeOwner)
at System.Reflection.RuntimeConstructorInfo.Invoke(Object obj, BindingFlags 
invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.Reflection.MethodBase.Invoke(Object obj, Object[] parameters)
at Castle.MicroKernel.ComponentActivator.DefaultComponentActivator.
CreateInstanceCore(ConstructorCandidate constructor, Object[] arguments, 
Type implType)
--ComponentNotFoundException
at Castle.MicroKernel.DefaultKernel.
Castle.MicroKernel.IKernelInternal.Resolve(Type service, IDictionary 
arguments, IReleasePolicy policy)
at Castle.Facilities.TypedFactory.TypedFactoryComponentResolver.Resolve(
IKernelInternal kernel, IReleasePolicy scope)
at Castle.Facilities.TypedFactory.Internal.TypedFactoryInterceptor.Resolve(
IInvocation invocation)
at Castle.Facilities.TypedFactory.Internal.TypedFactoryInterceptor.Intercept
(IInvocation invocation)
at Castle.DynamicProxy.AbstractInvocation.Proceed()
at Castle.Proxies.Func`2Proxy.Invoke(String arg)
at AutoMapper.TypeMapFactory.<>c__DisplayClass11.<FindTypeMember>b__d(
MemberInfo prop)
at System.Linq.Enumerable.FirstOrDefault(IEnumerable`1 source, Func`2 
predicate)
at AutoMapper.TypeMapFactory.FindTypeMember(IEnumerable`1 modelProperties, 
IEnumerable`1 getMethods, String nameToSearch, IMappingOptions 
mappingOptions)
at AutoMapper.TypeMapFactory.MapDestinationPropertyToSource(LinkedList`1 
resolvers, TypeInfo sourceType, String nameToSearch, IMappingOptions 
mappingOptions)
at AutoMapper.TypeMapFactory.CreateTypeMap(Type sourceType, Type 
destinationType, IMappingOptions options)
at AutoMapper.ConfigurationStore.CreateTypeMap(Type source, Type destination
, String profileName)
at AutoMapper.ConfigurationStore.CreateMap(String profileName)
at WindsorAutoMapper.Mapper`2..ctor(IConfiguration configuration, 
IMappingEngine mappingEngine) in Mapper.cs: line 
23<projectfile:20C263C0-C7BB-4EC9-8922-93F433E8A561%2Ff%3AMapper.cs%3F23%3F1>
at WindsorAutoMapper.DummyMapper..ctor(IConfiguration configuration, 
IMappingEngine mappingEngine) in DummyMapper.cs: line 
7<projectfile:20C263C0-C7BB-4EC9-8922-93F433E8A561%2Ff%3ADummyMapper.cs%3F7%3F1>

Is this a bug in Castle Windsor? Or am I doing something wrong in my 
AutoMapper registration?

Regards,

Jochen Jonckheere

-- 
You received this message because you are subscribed to the Google Groups 
"Castle Project Users" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/castle-project-users/-/GqCYuXt4pWsJ.
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