Asp.Net Core6.0中MediatR的应用CQRS( 三 )

这样写也可以调用到 ,这就是上面写的 继承不同的类或者接口,一般大多数我都是继承IRequestHandler 。
6、INotification栗子这里我新建了一个Core6.0的WebAPI的工程来演示INotification的运用 。同样的nuget安装MediatR与扩展包MediatR.Extensions.Microsoft.DependencyInjection 。在Program.cs里添加 。这里如果你的命令处理类跟项目在同一个程序集里面就用第二个也可以,如果你是分开的另外建了一个类库写命令查询的直接引用里面随便一个类获取程序集就可以了
//获取该类下的程序集builder.Services.AddMediatR(typeof(Program).Assembly);//获取当前程序集//builder.Services.AddMediatR(Assembly.GetExecutingAssembly()); 这里我们注册了处理多个事件、每个都执行到了 。
using MediatApi.Helper;using MediatApi.Model;using MediatR;using Newtonsoft.Json;namespace MediatApi.Application.Command{    /// <summary>    /// 创建订单    /// </summary>    public class OrderCreateCommand:INotification    {        /// <summary>        /// Id        /// </summary>        public long Id { get; set; }        /// <summary>        /// 订单号        /// </summary>        public string? OrderNum { get; set; }        /// <summary>        /// 订单类型        /// </summary>        public string? OrderType { get; set; }        /// <summary>        /// 创建时间        /// </summary>        public DateTime? CreatTime { get; set; }    }    /// <summary>    /// 创建订单处理1    /// </summary>    public class OrderCreateCommandHandler : INotificationHandler<OrderCreateCommand>    {        public Task Handle(OrderCreateCommand notification, CancellationToken cancellationToken)        {            Order model = new(notification.Id, notification.OrderNum, notification.OrderType, notification.CreatTime);            //数据库操作省略            Result ret = new()            {                Code=200,                Message="",                Data=https://www.huyubaike.com/biancheng/model }; string retJson=JsonConvert.SerializeObject(ret); Console.WriteLine("11111——————————————订单创建啦!"); return Task.FromResult(retJson); } } ///

/// 创建订单后处理步骤2 /// public class OrderCreateTwoHandler : INotificationHandler { public Task Handle(OrderCreateCommand notification, CancellationToken cancellationToken) { Console.WriteLine("22222——————————————扣钱成功了"); return Task.CompletedTask; } } /// /// 创建订单后处理步骤3 /// public class OrderCreateThreeHandler : INotificationHandler { public Task Handle(OrderCreateCommand notification, CancellationToken cancellationToken) { Console.WriteLine("333333333——————————————订单入库啦!"); return Task.CompletedTask; } } /// /// 创建订单后处理步骤4 /// public class OrderCreateFoureHandler : INotificationHandler

推荐阅读