You're looking for the KnownType attribute for your data contracts:
[DataContract]
public class RequestBase
{
}
[DataContract]
[KnownType(typeof(RequestBase))]
public class RequestA : RequestBase
{
}
Then you can pass in a RequestA
object where RequestBase
is the expected type of the service operation:
var requestA = new RequestA();
serviceClient.MethodA(requestA);