WCF. Как добавить пользовательские типы DataContact в ссылку на клиент WCF?
У меня есть служба WCF с методом:
[OperationContract]
public bool TestCustomRequest(RequestBase request)
{
return true;
}
В указанном проекте библиотеки классов у меня есть 2 класса:
[DataContract]
public abstract class RequestBase
{
[DataMember]
public string Id { get; set; }
[DataMember]
public RequestTypeEnum RequestType { get; set; }
}
И унаследованный класс:
[DataContract]
public class CustomRequest : RequestBase
{
[DataMember]
public string CompanyId { get; set; }
}
Когда на стороне клиента я добавляю ссылку на сервис, я вижу только RequestBase
учебный класс. Можно ли добавить все классы, которые наследуют RequestBase
в сервисную ссылку и инициализировать их на стороне клиента?
Или я должен перегрузить TestCustomRequest
метод для каждого возможного входящего типа параметра?
Спасибо
1 ответ
Решение
Вы можете попробовать:
[DataContract]
[KnownType(typeof(CustomRequest))]
public abstract class RequestBase
{
[DataMember]
public string Id { get; set; }
[DataMember]
public RequestTypeEnum RequestType { get; set; }
}