Uso de IExtensibleDataObject en clientes

He convertido mi servicio web en un servicio wcf que tiene algunos contratos de datos. Como práctica recomendada, se menciona y es aconsejable que los DataContracts hereden de IExtensibleDataObject. Entiendo que en caso de adición o eliminación de miembros de datos, IExtensibleDataObject es útil. Pero no puedo entender cómo accederán los clientes a los miembros de datos eliminados. Aquí está mi código:

[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; }
}

Ahora, en mi próxima versión del servicio web, hice algunos cambios en DataContract como

[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; }
}

Sin embargo, mi cliente que está accediendo a mi versión anterior del servicio web ahora recibe un error por no proporcionar el campo MiddleName. Todavía estoy confundido por el uso de IExtensionDataObject.

Respuestas a la pregunta(3)

Su respuesta a la pregunta