using System.Collections.Generic;
public static void Main()
var requests = new List<RequestDtoBase>();
var remoteServiceFacade = new RemoteServiceFacade();
remoteServiceFacade.CallAlpha(requests.OfType<AlphaRequestDto>());
remoteServiceFacade.CallBeta(requests.OfType<BetaRequestDto>());
internal class RemoteServiceFacade {
public IEnumerable<ResponseDto> CallAlpha(IEnumerable<AlphaRequestDto> requests) {
return Array.Empty<ResponseDto>();
public IEnumerable<ResponseDto> CallBeta(IEnumerable<BetaRequestDto> requests) {
return Array.Empty<ResponseDto>();
internal abstract class RequestDtoBase { }
internal class AlphaRequestDto : RequestDtoBase { }
internal class BetaRequestDto : RequestDtoBase { }
internal class ResponseDto { }