6

Estoy buscando un contenedor IoC para usar en mi aplicación Compact Framework. Probando Funq noté que no puedo encontrar una forma de hacer Property Injection con él.¿Funq IoC Container admite la inyección de propiedades?

Revisé el debate en el sitio del proyecto y la unidad lo prueba, pero no puedo encontrar ningún ejemplo de Inyección de propiedades.

Does Funq support Property Injection?

+3

Espero que obtenga una respuesta a su pregunta, pero en una nota al margen, considere usar el Constructor Injection. La Inyección de Propiedades implica que la Dependencia es opcional, y eso rara vez es el caso. –

+0

Gracias por el consejo y en general estoy de acuerdo. Me gustaría saber mis opciones y limitaciones de todos modos. –

Respuesta

3

Bueno, ¿no sería así en general?

myContainer.Register<IUserRepository>(() => 
    { 
     var myRepository = new SomeUserRepository(); 
     myRepository.SomeProperty = someValue; 

     return myRepository; 
    }); 
+0

'someValue' en este contexto suele ser un servicio del contenedor. ¿Cómo se llega a ese servicio? –

+0

'myRepository.SomeProperty = myContainer.Resolve ();'? – herzmeister

+0

Obtuve una respuesta en el foro de Funq. En Funq realmente obtiene el contenedor en un parámetro para el método del proveedor, por lo que puede hacer: myContainer.Register ((c) => new SomeUserRepository() {SomeProperty = c.Resolve ()}); –

Cuestiones relacionadas