2013-07-01 4 views
0

У меня есть службы WCF с помощью метода:WCF. Как добавить пользовательские типы DataContact в ссылку WCF Client?

[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; } 
} 

Когда на стороне клиента I Добавляя ссылку на службу, я вижу только класс RequestBase. Возможно ли добавить все классы, которые наследуют RequestBase в служебную ссылку и инициализировать их на стороне клиента?

Или мне нужно перегрузить TestCustomRequest метод для каждого возможного типа входящих параметров?

Спасибо

ответ

2

Вы можете попробовать:

[DataContract] 
[KnownType(typeof(CustomRequest))] 
public abstract class RequestBase 
{ 
    [DataMember] 
    public string Id { get; set; } 

    [DataMember] 
    public RequestTypeEnum RequestType { get; set; } 
} 
+0

Великий, это он! Большое спасибо! – Sergejs