2009-07-21 5 views
2
  1. Im Moment haben wir rund 5 Service-Referenzen zu unseren Projekten in einer einzigen Lösung hinzugefügt. Ich bin gezwungen, Servicereferenz hinzuzufügen, auch für Projekte mit indirekten Abhängigkeiten, die Servicemethoden aufrufen. Gibt es eine Möglichkeit, sich in dieser Situation zu bewegen?WCF service reference update

  2. Für jede einzelne Änderung der Servicemethode muss ich jede einzelne Servicereferenz aktualisieren, um diese Änderungen zu bewirken. Es ist auch sehr zeitaufwendig. Ich frage mich nur, gibt es eine Möglichkeit, wie ich diese Dinge global verwalten, indem ich einzelne Service-Referenz für die gesamte Lösung.

Hilfe dankbar ..... :)

Antwort

2

Sie eine einzelne Referenz nicht, wenn Sie mehr Service haben, leider Lage sein, zu. Ich stehe korrigiert - siehe Jristas Antwort.

Sie können die Serviceverweise automatisch erstellen und aktualisieren: Anstatt sie manuell in Visual Studio mit Add Service Reference hinzuzufügen, überprüfen Sie das Befehlszeilenprogramm svcutil.exe, das im Grunde dasselbe tut.

Da es ein Befehlszeilenwerkzeug ist, können Sie es als z. Teil Ihrer fortlaufenden Build und aktualisieren Sie die erforderlichen Proxy-Client-Dateien jedes Mal, wenn Sie die App erstellen.

Schauen Sie sich diese zusätzlichen Links für Anleitungen und Erklärungen über die Einzelheiten der Verwendung svcutil.exe aus:

Marc

+0

Mit Svcutil können Sie tatsächlich eine einzelne Service- "Referenz" aus mehreren Service-Endpunkt-URLs generieren. – jrista

+0

Ich war mir nicht bewusst, dass dies möglich war - danke, dass du das herausgebracht hast! –

5

Sie sollten in der Lage sein, die s zu verwenden vcutil.exe Befehlszeilenprogramm zum Generieren einer einzelnen Servicedatei (z. B. CS-Datei) aus mehreren Service-URLs. Das Schöne daran ist, dass Sie clinet-seitige DTOs und Nachrichtentypen über Services hinweg teilen können, wenn sie das gleiche Schema haben.

SvcUtil Referenz: http://msdn.microsoft.com/en-us/library/aa347733.aspx

In Bezug auf die Anforderung an Projekten mit indirekten Abhängigkeiten den Dienstverweis hinzuzufügen. Sie sollten die Service-Referenz und verwandte Typen wahrscheinlich nicht direkt von Ihrem Service-Client aus verwenden. Um Wartbarkeit und Anpassbarkeit zu verbessern, sollten Sie Ihre Servicereferenz (en) in eine Fassade einfügen. Die Fassade würde zwischen lokalen Typen und Dienstreferenztypen abbilden und Ihnen viel mehr Flexibilität beim Beantworten von Dienständerungen geben. Sie müssten dann nur die Service-Referenzen an einem einzigen Ort (vorzugsweise ein unabhängiges Projekt) zusammen mit der Fassade haben. Die Fassade, die sich selten ändern sollte, wird Sie von den Problemen abhalten, die Sie gerade mit Ihren Service-Referenzen haben.

+0

Könnte jemand bitte erklären, warum dies abgelehnt wurde? – jrista

+1

svcutil führt nicht den gleichen Job wie "Update Service Reference" aus, was ziemlich schmerzhaft ist –