Cliente do WCF com problemas para reconhecer ServiceKnownTypes?

Como eu diria ao serviço WCF que KnownTypes usar ao transmitir dados de volta ao cliente?

Eu sei que posso usar o[ServiceKnownType] atributo, que faz com que a chamada de serviço seja executada corretamente a partir de um servidor de teste do WCF, mas ainda falha no cliente. Estou faltando alguma coisa aqui?

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

A mensagem de erro do cliente é:

{"Elemento 'http://schemas.datacontract.org/2004/07/BaseClassZ' contém dados de um tipo que é mapeado para o nome 'http://schemas.datacontract.org/2004/07/SubClassA'. O desserializador considere o uso de um DataContractResolver ou adicione o tipo correspondente a 'SubClassA' à lista de tipos conhecidos - por exemplo, usando o atributo KnownTypeAttribute ou adicionando-o à lista de tipos conhecidos passado para DataContractSerializer. "}

Serializar / desserializar o objeto no servidor WCF usando um DataContractSerializer e uma lista de KnownTypes funciona bem.

ATUALIZAR: Parece que posso fazer com que o cliente leia o objeto corretamente se adicionar atributos KnownType à classe base, mas ainda estou procurando uma maneira de contornar isso, se possível, pois a classe base é usada para muitos itens e não o faço. deseja modificar os atributos KnownType na classe base sempre que adicionar um novo item.

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

questionAnswers(3)

yourAnswerToTheQuestion