Pregunta

Me estoy poniendo una excepción llamando Resolve:

KernelException: Could not instantiate custom activator
Inner Exception:
{"Constructor on type 'MyProj.MyAdapter`1[[MyProj.MyBusinessObject, MyAsm, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' not found."}

Hay definitivamente un constructor público sin parámetros allí (y he comprobado esto utilizando la reflexión en tiempo de ejecución) ... así que entender el problema que tenga que ver con el hecho de que es genérico? He intentado conseguir el modelo de objetos de componentes y configuración de RequiresGenericArguments a cierto, pero eso no me ha llegado a ninguna parte.

Cualquier ayuda sería muy apreciada! Gracias.

¿Fue útil?

Solución

Windsor no está usando constructor predeterminado a activadores instanciar.

La nueva versión lanza un mensaje de excepción más útiles:

Castle.MicroKernel.KernelException : Could not instantiate custom activator
  ----> System.ArgumentException : Type Castle.Windsor.Tests.ActivatorWithoutCorrectConstructor does not have a public constructor matching arguments of the following types:
Castle.Core.ComponentModel
Castle.MicroKernel.DefaultKernel
Castle.MicroKernel.ComponentInstanceDelegate
Castle.MicroKernel.ComponentInstanceDelegate

Por lo que necesita un constructor como esto

public YourActivator(ComponentModel model, IKernel kernel,
                                    ComponentInstanceDelegate onCreation,
                                    ComponentInstanceDelegate onDestruction)
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top