He agregado el CollectionResolver
como un sub-resolver de mi kernel de Windsor, y se inyectará apropiadamente colecciones de dependencias en objetos resueltos. Es decir, si tengoCastle Windsor CollectionResolver: ¿Por qué no funciona en Resolver llamadas?
class X { public X(IComponent[] components) { ... } }
container.Register(/* lots of IComponents */);
container.Register(Component.For<X>());
el argumento components
al constructor se construye correctamente cuando resuelvo que
container.Resolve<X>()
pero si en cambio sólo me gustaría obtener la lista de componentes en sí,
container.Resolve<IComponent[]>()
me sale una excepción ComponentNotFound
quejándose de que no he registrado ninguna componentes para IComponent[]
. Encuentro que esta asimetría es contradictoria ya que no estoy seguro de por qué el kernel debería actuar de manera diferente cuando está resolviendo dependencias que encontró en constructores/propiedades en comparación con cuando está resolviendo dependencias que su usuario desearía resolver.
"Acepto que no es muy intuitivo". Supongo que quieres decir que no es realmente intuitivo. – Steven
sí, arreglado gracias –