Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WCF] Utiliser Unity avec un service WCF

Unity est le conteneur IoC (Inversion of Controls, inversion de contrôles) mis à disposition par Microsoft.

Celui-ci permet de faire de l’injection de dépendances, afin de vous permettre de développer des applications faiblement couplées. Dans le cadre d’un article que je suis en train d’écrire, j’ai tenté d’utiliser un container Unity pour utiliser un service WCF.

Au niveau de la configuration, j’ai donc utiliser ceci:

image

Puis j’ai créer un petit singleton qui va configurer mon container et me le retourner:

image

Le problème, c’est que si j’exécute mon code, au moyen du code suivant:

image

Je reçoit cette erreur:

Resolution of the dependency failed, type = "NwEmployeesViewer.Client.WPF.NorthwindSvc.INorthwindService", name = "". Exception message is: The current build operation (build key Build Key[NwEmployeesViewer.Client.WPF.NorthwindSvc.NorthwindServiceClient, null]) failed: The current build operation (build key Build Key[NwEmployeesViewer.Client.WPF.NorthwindSvc.NorthwindServiceClient, null]) failed: The type NorthwindServiceClient has multiple constructors of length 2. Unable to disambiguate. (Strategy type DynamicMethodConstructorStrategy, index 0) (Strategy type BuildPlanStrategy, index 3)

Pour faire clair, le problème semble venir du fait que le contructeur des services WCF possède plusieurs surcharges (un vide, un pour spécifier un endpoint, etc.) et que Unity n’est pas en mesure de trouver le constructeur par défaut (le constructeur vide). Il va donc falloir lui forcer la main, à savoir lui indiquer que le constructeur à utiliser prend en paramètre le nom de notre endpoint:

image

Et le tour est joué ! Smile

 

A+

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: mercredi 26 août 2009 11:32 par Thomas LEBRUN
Classé sous : , ,

Commentaires

fredhamel a dit :

Hello Thomas,

en effet unity prend le constructeur avec le plus de paramètre par defaut :)

En ce qui concerne mettre le container dans un singleton, je dirais que c'est très pratique mais qu'il faut faire attention car de manière générale les singletons rendent le code plus difficile à tester car on a du mal a les remplacer par des faux ou des autres pendant des tests :).

Merci

# août 26, 2009 14:13

Miiitch a dit :

C'est sympa mais comment fermes-tu la communication entre ton client et le serveur? Ta classe client contient bien ce qu'il faut mais peut-etre pas ton interface INorthwindService.

D'ailleurs, je vais bloqquer une façon de faire cela par code, on comparera comme ça! ;)

# août 26, 2009 15:43

Zied Nemili a dit :

Salut Thomas,

Il ne te semble pas bizarre que le client connaisse et choisisse l'implémentation d'un service?

# septembre 8, 2009 10:25
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- [SharePoint] Les sessions TechDays 2012… par Le blog de Patrick [MVP SharePoint] le il y a 5 heures et 37 minutes

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le 02-09-2012, 11:01

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le 02-09-2012, 08:28

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59