¿Es que no Instantiate Windsor personalizada componente activador
-
26-09-2019 - |
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.
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