IExtensibleDataObject Verwendung in Kunden

Habe ich umgewandelt mein web service wcf service die einige datacontracts. Als best-practice-es ist erwähnt und empfohlen, dass die DataContracts Erben sollen von IExtensibleDataObject. Ich bekomme den Punkt, dass bei hinzufügen oder entfernen von datamembers, IExtensibleDataObject ist hilfreich. Aber ich bin nicht in der Lage zu bekommen, wie wird den Kunden Zugang entfernt datamembers. Hier ist mein code:

[ServiceContract(Namespace = "http://mycompany.com/2010/08/")]
public class MyWebService {
    [OperationContract]
    public Employee Add(Employee emp)
    {
        //Some Processing
    }
}

[DataContract(Name = "Employee", Namespace = "http://mycompany.com/2010/08/")]
public class Employee : IExtensibleDataObject {
    [DataMember] public string FirstName;
    [DataMember] public string LastName;

    public ExtensionDataObject ExtensionData  { get; set; }
}

Nun in meiner nächsten version des web-service, den ich einige änderungen vorgenommen DataContract als

[DataContract(Name = "Employee", Namespace = "http://mycompany.com/2010/09/")]
public class Employee : IExtensibleDataObject {
    [DataMember] public string FirstName;
    [DataMember] public string LastName;
    [DataMember(IsRequired = true)] public string MiddleName;

    public ExtensionDataObject ExtensionData  { get; set; }
}

Aber mein client, der Zugriff auf meine ältere version der web service ist jetzt immer Fehler nicht gemacht, den MiddleName Feld. Ich bin immer noch verwirrt für die Nutzung von IExtensionDataObject.

InformationsquelleAutor Ashish | 2010-08-08
Schreibe einen Kommentar