6

Je suis à la recherche d'un conteneur IoC à utiliser dans mon application Compact Framework. Essayer Funq J'ai remarqué que je ne peux pas trouver un moyen de faire de l'injection de propriété avec elle. J'ai examiné la discussion sur le site du projet et les tests unitaires, mais je ne trouve aucun exemple d'injection de propriété.Le conteneur Funq IoC prend-il en charge l'injection de propriété?

Est-ce que Funq prend en charge Property Injection?

+3

J'espère que vous aurez une réponse à votre question, mais dans une note, pensez plutôt à utiliser l'option Constructor Injection. Injection de propriété implique que la dépendance est facultative, ce qui est rarement le cas. –

+0

Merci pour le conseil et généralement je suis d'accord. J'aimerais connaître mes options et contraintes de toute façon. –

Répondre

3

Eh bien, n'est-ce pas que ça va généralement quelque chose comme ça?

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

     return myRepository; 
    }); 
+0

'someValue' dans ce contexte est généralement un service du conteneur. Comment obtenez-vous ce service? –

+0

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

+0

Vous avez une réponse à faire sur le forum Funq. Dans Funq, vous obtenez le conteneur dans un paramètre de la méthode du fournisseur, vous pouvez donc: myContainer.Register ((c) => new SomeUserRepository() {SomeProperty = c.Resolve ()}); –