2013-09-19 6 views
1

я следующий метод подпись подвергаясь через WCF:метод WcfTestClient принять базовый класс как пары

public void MethodA(RequestBase request) 
{ 

} 

public class RequestA : RequestBase 
{ 

} 

Есть некоторые конкретные классы, производные от класса RequestBase. Во время вызова службы с использованием WcfTestClient.exe, как передать фактический конкретный класс (RequestA) в RequestBase в методе A?

ответ

1

Вы ищете KnownType attribute для ваших контрактов данных:

[DataContract] 
public class RequestBase 
{ 
} 

[DataContract] 
[KnownType(typeof(RequestBase))] 
public class RequestA : RequestBase 
{ 
} 

Затем вы можете перейти в RequestA объекта, где RequestBase это ожидаемый тип операции службы:

var requestA = new RequestA(); 
serviceClient.MethodA(requestA);