Вопрос возврата типа WCF - PullRequest
       7

Вопрос возврата типа WCF

0 голосов
/ 30 сентября 2011

Я использую automapper для сопоставления мастер-класса с различными дочерними классами.

Пример: у меня есть класс с именем VitalStatistics (мастер-класс).Этот класс содержит все поля для записи.

Бизнес-правила компании указывают, что в зависимости от местоположения штата требуются только определенные поля.Таким образом, Калифорния может не все 20 полей, найденных в мастер-классе, и может потребоваться только 10 полей вместо 20. Поэтому я использую Autopper для отображения данных класса VitalStatis в класс CAVitalStats, который имеет только 10 полей.Класс TXVitalStats может иметь только 3 поля.и т. д.

Моим веб-службам нужно возвращать тип, общий для этих классов.Например, интерфейс IVitalStatistics.

Кажется, что службе WCF не нравится интерфейс, объявленный в качестве возвращаемого типа.Итак, как я могу получить сервис для возврата CAVitalStats или TXVitalStats?Обычно, если бы они оба были одного и того же типа интерфейса, тогда это работало бы, потому что все они имели бы тип IVitalStatistics, но правила обмена сообщениями сериализации, похоже, имеют проблему с возвратом типов интерфейса.Спасибо

1 Ответ

0 голосов
/ 30 сентября 2011

Если у вас есть CAVitalStats и TXVitalStats, оба унаследованные от одного и того же базового класса, например, VitalStatsBase, то ваш сервисный метод мог бы возвращать VitalStatsBase.

Чтобы это работало с вашими 2 подклассами, вам нужноиспользуйте атрибут KnownTypeAttribute в вашем сервисе.

Ниже приведена ссылка, описывающая атрибут KnownTypeAttribute.

http://msdn.microsoft.com/en-us/library/ms730167.aspx

...