来看一下调用
using MediatR;using Microsoft.Extensions.DependencyInjection;using Mrdiator.Query;using Newtonsoft.Json;using System.Net.Http;using System.Reflection;//实例化一个ServiceCollectionIServiceCollection services = new ServiceCollection();//添加当前的程序集MediatR会扫描当前的程序集//services.AddMediatR(typeof(Program).Assembly);services.AddMediatR(Assembly.GetExecutingAssembly());//构建一个serviceProvidervar serviceProvider = services.BuildServiceProvider();//从容器中获取mediatorvar mediator = serviceProvider.GetService<IMediator>();//执行命令var result =await mediator.Send(new GetInfoQuery(18,"wyy",DateTime.Now));

文章插图
同样我们启动程序也打印了我们的输出 。
b.IRequest:无返回值的栗子
【Asp.Net Core6.0中MediatR的应用CQRS】using MediatR;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Mrdiator.Query{ /// <summary> /// 命令查询类--无返回值 /// </summary> internal class GetInfoQuery2 : IRequest { public GetInfoQuery2(int age, string name, DateTime nowTime) { Age = age; Name = name; NowTime = nowTime; } public int Age { get; set; } public string Name { get; set; } public DateTime NowTime { get; set; } } /// <summary> /// 命令处理类1-----继承AsyncRequestHandler 实现抽象方法 Handle /// </summary> internal class GetInfoQuery2_2Handller : AsyncRequestHandler<GetInfoQuery2> { protected override Task Handle(GetInfoQuery2 request, CancellationToken cancellationToken) { Console.WriteLine("GetInfoQuery2_2Handller"); return Task.CompletedTask; } } /// <summary> /// 命令处理类2-----IRequestHandler 实现接口方法 Handle /// </summary> internal class GetInfoQuery2Handller : IRequestHandler<GetInfoQuery2> { public Task<Unit> Handle(GetInfoQuery2 request, CancellationToken cancellationToken) { Console.WriteLine("GetInfoQuery2Handller"); return Task.FromResult(new Unit()); } }}
经验总结扩展阅读
- 常用Python库整理
- 2023年1月24日建造寺庙好吗 2023年1月24日建造寺庙行吗
- 中式装修风格怎么搭配更好看 中式风格装修注意事项有哪些
- 2023年1月24日修筑堤坝好吗 2023年1月24日是修筑堤坝的黄道吉日吗
- 2023年1月24日粉刷墙壁好吗 2023年1月24日是粉刷墙壁的黄道吉日吗
- 2023年1月24日厨房移位好吗 2023年1月24日厨房移位行吗
- 加拿大高中排名 加拿大高中排名
- 2023中秋祝福语送客户
- 2023中秋祝福语送领导
- 2023送给领导的中秋祝福语