Клиент WCF испытывает проблемы с распознаванием ServiceKnownTypes?

Как мне сообщить службе WCF, какие KnownTypes использовать при передаче данных клиенту?

Я знаю, что могу использовать[ServiceKnownType] атрибут, который заставляет вызов службы работать нормально с тестового сервера WCF, однако он все равно не выполняется с клиента. Я что-то здесь упускаю?

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

Сообщение об ошибке от клиента:

{"Элемент" http://schemas.datacontract.org/2004/07/BaseClassZ "содержит данные из типа, который отображается на имя" http://schemas.datacontract.org/2004/07/SubClassA ". Десериализатор не знает ни одного типа, который сопоставляется с этим именем. Попробуйте использовать DataContractResolver или добавить тип, соответствующий SubClassA, в список известных типов, например, используя атрибут KnownTypeAttribute или добавив его в список известных типов. передано в DataContractSerializer. "}

Сериализация / десериализация объекта на сервере WCF с использованием DataContractSerializer и списка KnownTypes работает нормально.

ОБНОВИТЬ: Похоже, я могу заставить клиента правильно прочитать объект, если я добавлю атрибуты KnownType в базовый класс, но я все еще ищу способ обойти это, если это возможно, так как базовый класс используется для большого количества элементов, и я не Я хочу изменить атрибуты KnownType базового класса каждый раз, когда добавляю новый элемент.

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

Ответы на вопрос(3)

Ваш ответ на вопрос