Injection de dépendance avec Unity et Client WCF
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:
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:
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
Citation:
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?