using Microsoft.Extensions.DependencyInjection;
public static void ConfigureServices(IServiceCollection services)
services.AddScoped<IRequestHandler<Query,bool>,Query.Handler>();
var executingAssembly = System.Reflection.Assembly.GetExecutingAssembly();
services.AddMediatR(executingAssembly);
public static void Main()
var serviceCollection = new ServiceCollection()
.AddMediatR(Assembly.GetExecutingAssembly());
ConfigureServices(serviceCollection);
var provider=serviceCollection.BuildServiceProvider();
var mediator = provider.GetService<IMediator>();
var wynik = mediator.Send(new Query(){param = true}).GetAwaiter().GetResult();
Console.WriteLine(wynik);
public interface IRequest<T>
public interface IRequestHandler<T1,T2>
public class Query:IRequest<bool>
public bool param {get;set;}
public class Handler:IRequestHandler<Query,bool>
public async System.Threading.Tasks.Task<bool> Handle(Query qry, System.Threading.CancellationToken ct)
return await System.Threading.Tasks.Task.FromResult(qry.param);