El siguiente código es solo para fines de demostración.Castle Windsor IOC: paso de los parámetros del constructor a los componentes secundarios
Digamos que tengo 2 componentes (businessService y dataService) y una clase de UI.
La clase UI necesita un servicio comercial, businessService necesita un servicio de datos, y dataService se basa en un connectionString.
Formulario de la clase de interfaz de usuario en Necesito resolver el servicio de negocio, así que estoy escribiendo el código de abajo:
var service = container.Resolve<BusinessService>(new { dependancy = "con string 123" }));
aviso de esa dependencia es el parámetro constructor connectionString.
Pero el código anterior no funciona, diciendo que dataService espera dependencia que no se satisfizo.
No se puede crear el componente 'Dataservice' ya que tiene dependencias para ser satisfecho. dataService está esperando las siguientes dependencias:
Teclas (componentes con claves específicas) - dependencia que no se ha registrado.
Así como una solución que estoy haciendo esto:
var service = container.Resolve<BusinessService>(new { dataService = container.Resolve<IDataService>(new { dependancy = "123" }) });
Pero desde el diseño, la codificación de estilo y muchos puntos de vista esto no es una buena manera de hacerlo.
Así que por favor si puede aconsejar por qué no está funcionando de la manera más simple o si tiene una mejor solución, por favor comparta.
¿Puede proporcionar una definición breve pero completa de BusinessService, DataService y dependancy/connectionString que fallará? Elimine cualquier código que no contribuya directamente a reproducir el problema. –
Es simple y directo –
clase pública BusinessService {public BusinessService (DataService dataService) {}} –