2016-05-10 11 views
0

Wir haben diese mittlere Ebene (WCF) in einem IIS bereitgestellt. Manchmal ändert DataContact den Eigenschaftendatentyp. d.h (StudentID)WCF DataContract Mismatch

Von:

[DataContact] 
public class Student 
{ 
    public int StudentID { get; set; } 
    public string Name { get; set; } 
} 

An:

[DataContact] 
public class Student 
{ 
    public string StudentID { get; set; } 
    public string Name { get; set; } 
} 

Frage: Gibt es eine Möglichkeit, den Client zu sagen, oder eine Nachricht (Fehler) an den Client senden, dass die Datacontract verändert?

+0

Ich glaube nicht, dass es einen Weg für den Dienst gibt, Kunden darüber zu informieren, dass sich etwas geändert hat (und ich denke, dass dies die SOA sprengen würde) Aspekt); Der Kunde muss bestimmen, was geändert wurde (wenn es möglich ist). Der Fehler wird auftreten (ich erwarte) auf der Clientseite, wenn es versucht, das XML zu deserialisieren. – Tim

Antwort

1

WCF unterstützt Versionierungsfunktionen.

Wenn Sie jedoch ändern Rückgabewerttypen dann Eine Ausnahme wird auftreten, wenn der Rückgabewert aus dem Dienst nicht in den erwarteten Datentyp in der Clientversion der Operation Signatur konvertiert werden kann.

Der wichtige Unterschied ist zu verstehen, dass es bestimmte Veränderungen, die und andere nicht brechen Änderungen sind zu brechen. Für z.B. Wenn Sie dem WCF-Dienst eine neue Methode hinzufügen, handelt es sich um eine Non-Breaking Änderung, aber wenn Sie die Methode entfernen, handelt es sich um eine bahnbrechende Änderung für die Clients.

Für weitere Lesung,

Während des Entwurfs für WCF-Dienste here bei Msdn las, wird es auf Service Version tolerant, empfohlen, so dass Client auf andere Version mit dem Service arbeiten kann. Außerdem müssten Sie die Änderungen per E-Mail/Dokument usw. kommunizieren. Ich glaube nicht, dass es eine Out-of-Box-Unterstützung für die Verwaltung von Benachrichtigungen gibt. Es scheint eine administrative Arbeit zu sein, für die Sie andere Kommunikationsmittel wie E-Mails usw. verwenden können.

Verwandte Themen