Partager des objets DTO entre des services WCF
Question
Je pense que c'est une question stupide avant même de poser la question, mais mon cerveau ne fonctionne pas très bien pour le moment. J'ai deux services WCF " CountryService " et "FloristService".
CountryService utilise maintenant la méthode suivante:
IList<CountryDTO> GetAllCountries();
De plus, FloristService a une méthode:
bool AddFlorist(FloristDTO florist);
Tout va bien jusqu'à présent, mais le problème est que le FloristDTO fait référence à un CountryDTO, c'est-à-dire.
public string Address1 { get; set; }
public string Address2 { get; set; }
public string Address3 { get; set; }
public string City { get; set; }
public string Postcode { get; set; }
public CountryDTO Country { get; set; }
public string Name { get; set; }
C’est correct, mais si j’utilise la génération de proxy de service avec Visual Stuidos (c.-à-d. Ajouter une référence > Ajouter un service), deux versions de CountryDTO sont créées: ieFloristService.CountryDTO et CountryService.CountryDTO.
Maintenant, je peux penser à quelques moyens de surmonter ce problème, mais aucun d’entre eux ne semble juste. Je me demandais ce que le "correct" serait-ce que je pourrais faire quelque chose d’amusant avec l’outil de génération de proxy pour le faire partager des DTO communs?
Cordialement, Chris
La solution
Vous pouvez réutiliser des types dans svcutil: http://blogs.msdn.com/youssefm/archive/2009/10/09/reusing-types-in-referenced-assemblies-with-svcutil-sr-switch.aspx
Autres conseils
Article " Pour réutiliser des types sur des noeuds finaux de service, suggère, côté client, de mettre à jour manuellement Reference.svcmap afin d’inclure plusieurs et NamespaceMappings.
Alternativement, svcutil vous permet de spécifier plusieurs points de terminaison à la fois et d'utiliser les paramètres / r (/ reference) et / n (/ namespace).