public static IAsyncEnumerable <IProjectionResult> ProjectAsync <TSource>(this IProjector projector, TSource source, IServiceProvider serviceProvider, CancellationToken cancellation) where TSource : class { if (projector == null) { throw new ArgumentNullException(nameof(projector)); } return(projector.ProjectAsync(typeof(TSource), source, serviceProvider, cancellation)); }