¿WCF Client tiene problemas para reconocer ServiceKnownTypes?

¿Cómo le diría al servicio WCF qué KnownTypes debe usar al pasar datos al cliente?

Sé que puedo usar el[ServiceKnownType] atributo, que hace que la llamada de servicio se ejecute bien desde un servidor de prueba WCF, sin embargo, aún falla desde el cliente ¿Me estoy perdiendo de algo?

[OperationContract]
[ServiceKnownType(typeof(SubClassA))]
[ServiceKnownType(typeof(SubClassB))]
BaseClassZ GetObject();

El mensaje de error del cliente es:

{"El elemento 'http://schemas.datacontract.org/2004/07/BaseClassZ' contiene datos de un tipo que se asigna al nombre 'http://schemas.datacontract.org/2004/07/SubClassA'. El deserializador no tiene conocimiento de ningún tipo que se asigne a este nombre. Considere usar un DataContractResolver o agregue el tipo correspondiente a 'SubClassA' a la lista de tipos conocidos, por ejemplo, utilizando el atributo KnownTypeAttribute o agregándolo a la lista de tipos conocidos pasado a DataContractSerializer. "}

Serializar / Deserializar el objeto en el servidor WCF usando un DataContractSerializer y una lista de KnownTypes funciona bien.

ACTUALIZAR: Parece que puedo hacer que el cliente lea el objeto correctamente si agrego atributos KnownType a la clase base, pero todavía estoy buscando una forma de evitarlo si es posible ya que la clase base se usa para muchos artículos y no lo hago. quiero tener que modificar los atributos de KnownType en la clase base cada vez que agrego un nuevo elemento.

[DataContract]
[KnownType(typeof(SubClassA))]
[KnownType(typeof(SubClassB))]
public class BaseClassZ 
{
    ...
}

Respuestas a la pregunta(3)

Su respuesta a la pregunta