2016-06-09 2 views

Antwort

0

Dies ist eine knifflige Frage.

Ich denke, Sie sollten in Ordnung sein, weil Sie nicht entfernen oder neue Parameter der Schnittstelle hinzufügen.

Es ist nur eine einfache Änderung an einem vorhandenen Parameter und meiner Meinung nach entspannen Sie hier nur die Einschränkung. Anstatt den Parameter zu erzwingen, um null nicht akzeptieren zu können, sagen Sie, dass es jetzt ist.

Ich glaube, bestehende Prozesse müssen bereits nicht-Nullwert für diese Eigenschaft dateTime gesetzt haben? Damit neue Prozesse die Änderung nutzen können, müssen sie die Referenz aktualisieren, da sonst keine Änderung erforderlich ist.

Dennoch ist es im Allgemeinen eine schlechte Idee, einen Wartungsvertrag zu ändern. Haben Sie sich die Änderung Ihrer Versionshinweise angesehen? Damit Ihre Kunden sich bewusst sind und entsprechende Maßnahmen ergreifen können.

Hier ist eine weitere Liste der brechenden Änderungen, die Ihnen Probleme bereiten könnten.

  • Operationen
  • ändern Operationsname
  • Remove Operation entfernen Parameter
  • hinzufügen Betriebsparameter
  • Ändern eines Betriebsparametername oder Datentyp
  • ändern, um einen Rückgabewert Typ Operation
  • ändern das serialisierte XML-Format für einen Parametertyp (Datenvertrag) oder Operation (Nachrichtenvertrag) durch explizite Verwendung von .NET a ttributes oder benutzerdefinierte Serialisierungscode
  • Modify Service-Betrieb-Encoding-Formate (RPC Encoding vs. Dokumentliteral)
+0

Nachdem getestet, müssen die Referenzen nicht aktualisiert werden, um zu arbeiten :) –

0

einen Servicevertrag ändern, wenn nur eine Eigenschaft auf NULL festlegbare von Nicht-Nullable-Herstellung erfordert die Service-Referenzen aktualisiert werden.

Anstatt dass jedes Projekt den Dienst zum Erstellen eigener Referenzen verwendet, können Sie ein freigegebenes Projekt erstellen, in dem Sie eine Servicereferenz pflegen. Auf diese Weise müssen Sie nicht alle Ihre Projekte und Anwendungen durchlaufen und diesen Prozess für jeden einzelnen durchlaufen.

Eine bessere Lösung besteht immer noch darin, Ihre POCOs in einem separaten Projekt/einer separaten Assembly zu definieren und diese sowohl auf den Service als auch auf den Client zu beziehen. WCF und VS sind intelligent genug, um zu erkennen, dass sie keine Proxy-Klassen für die Serviceklassen erstellen müssen und stattdessen die POCOs der separaten Assembly verwenden. Sie müssten die Service-Referenz nicht aktualisieren, wenn Sie eine Eigenschaft in einer Klasse ändern, die vom Service bereitgestellt wird, nur wenn Sie Klassen hinzufügen/entfernen oder die Service-Schnittstelle ändern.