Teilen DTO-Objekte zwischen WCF-Dienste
Frage
Ich fühle mich ist dies eine dumme Frage, noch bevor fragen, aber mein Gehirn ist nicht allzu gut im Augenblick arbeiten. Ich habe zwei WCF-Dienste „CountryService“ und „FloristService“.
Jetzt CountryService hat die folgende Methode:
IList<CountryDTO> GetAllCountries();
Darüber hinaus hat FloristService eine Methode:
bool AddFlorist(FloristDTO florist);
Alle bisher gut, aber das Problem ist, dass die FloristDTO verweist ein CountryDTO d.
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; }
Das ist in Ordnung, aber wenn ich den Service-Proxy-Erzeugungs util mit Visual Stuidos verwenden (d Verweis hinzufügen> Dienstverweis hinzufügen), dann werde ich zwei Versionen von CountryDTO sind i.e.FloristService.CountryDTO und CountryService.CountryDTO erstellt.
Jetzt kann ich von ein paar Möglichkeiten denken, dies zu überwinden, aber nonw von ihnen scheinen recht. Ich fragte mich, was der „richtige“ Ansatz dazu wäre, gebe es etwas flippiger ich mit dem Proxy-Generierungstool tun kann, um es gemeinsam DTOs zu machen teilen?
Cheers, Chris
Lösung
Andere Tipps
"Wie wiederzuverwenden Typen für Service-Endpunkte " manuell auf Client-Seite schlägt aktualisieren Reference.svcmap mehrere und NamespaceMappings aufzunehmen.
Alternativ svcutil ermöglicht es Ihnen, mehrere Endpunkte zu einem einzigen Zeitpunkt und nutzen / r (/ reference) und / n (/ Namespace) Parameter angeben.