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 :
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 IServiceInvoker _invoker; _invoker.Invoke(IClass, ObjectReturn).CallMethod() ;
Donc j'ai fait qq chose comme
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
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() ...
Pourtant, lorsque j'exécute le resolve, j'ai l'exception suivante
Une idée?The current type, IServiceInvoker, is an interface and cannot be constructed. Are you missing a type mapping?
Est-ce bien comme cela qu'il faut mettre en pratique l'injection de dépendance?
Partager