Интерфейс WCF и производный класс - PullRequest
4 голосов
/ 07 июня 2010

У меня есть служба WCF, и я должен предоставить интерфейс как datacontract. Есть два производных класса от интерфейса. Служба WCF вернет объект производного типа. Клиент должен будет привести его как производный класс. Это возможно на стороне клиента?. Какой должен быть мой подход.

1 Ответ

6 голосов
/ 07 июня 2010

Если у вас есть производные классы, вам нужно «прорекламировать» их в договоре на данные:

[DataContract]
[KnownType(typeof(DerivedType1))]
[KnownType(typeof(DerivedType2))]
public class BaseType
{
   ......    
}

или вы также можете указать такие отношения в контракте на обслуживание:

[ServiceKnownType(typeof(DerivedType1))]
[ServiceKnownType(typeof(DerivedType2))]
[ServiceContract()]
public interface IService
{
    [OperationContract]
    BaseType GetItems();
}

Ознакомьтесь с документами MSDN по Известные типы контракта данных или Известные типы обслуживания для получения дополнительной информации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...