Bonjour,

J'ai un peu de mal à comprendre le principe d'injection de dépendance ainsi que son implémentation via Unity.

Si je comprends bien, le principal intérêt est de de pouvoir découpler les différentes couches et ainsi notamment faciliter les Tests unitaires.

Dans un projet que je dois réaliser (je n'ai pas les sources), on me demande d'utiliser l'IoC avec Unity pour faire les appels des services WCF.

L'appel se fait via une méthode où on passe en paramètre l'interface de la méthode qu'on veut appeler ainsi que le type du retour.

C'est qq chose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
IServiceInvoker _invoker;
 
_invoker.Invoke(IClass, ObjectReturn).CallMethod() ;
J'aimerais pouvoir utiliser l'injection de dépendance pour ne pas dépendre de l'appel au webservice et ainsi faire les TU. et aussi pouvoir mocker la réponse...

Donc j'ai fait qq chose comme

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
IUnityContainer _unityContainer = new UnityContainer();     
 
 _unityContainer.RegisterType<IServiceInvoker , ServiceInvoker>();
 
IServiceInvoker invoke = _unityContainer.Resolve<IServiceInvoker>();
invoke.CallMethod() ...
Sauf erreur de ma part, si j'utilise cette maniere, je n'ai pas besoin de déclarer quoique ce soit dans le fichier de config... J'avais déjà essayé de rajouter les blocs dans le fichier de config aussi sans succès

Pourtant, lorsque j'exécute le resolve, j'ai l'exception suivante

The current type, IServiceInvoker, is an interface and cannot be constructed. Are you missing a type mapping?
Une idée?
Est-ce bien comme cela qu'il faut mettre en pratique l'injection de dépendance?