T4 POCO Generation с ошибкой наследования - производный класс не будет генерироваться на стороне клиента - PullRequest
1 голос
/ 26 августа 2011

Я сделал простую модель EF4 с наследованием.Объект B получает форму объекта A.
Я использую шаблон P4O T4.(VS 2010)

В моем клиенте Silverlight при добавлении ссылки на службу в службу WCF в пространстве имен службы создается только базовый класс.Производный класс игнорируется.

Эта ошибка упоминается здесь: http://forums.silverlight.net/p/157316/352167.aspx
, но ссылка в ответе никуда не ведет.

В решении упоминается, что вы можете обойти это, добавив некоторые атрибуты.Или, альтернативно, есть официальное исправление ошибки?

Ответы [ 2 ]

1 голос
/ 26 августа 2011

Это не ошибка.Это обычное поведение.Ваша сервисная операция возвращает базовый класс, поэтому описание сервиса знает только базовый класс, пока вы не проинструктируете его также использовать производные типы.Наиболее распространенным решением является использование атрибута KnownType в базовом классе или атрибута ServiceKnownType в службе или операции.Другое решение (в WCF4 используется DataContractResolver) - Журнал MSDN содержит хорошую статью о наследовании контракта данных.

0 голосов
/ 26 августа 2011

Вот вам пример атрибута KnowType

http://www.freddes.se/2010/05/19/wcf-knowntype-attribute-example/

...