更新框架

This commit is contained in:
chfei committed 2026-10-27 14:35:03 +08:00
1 parent ef50fa0620
commit 84b28f9672
72 files changed
+2222 -282

No files matched your search

+25
View File
@@ -0,0 +1,25 @@
# 源码来源与修改记录
来源:用户提供的 `D:\Sources\MediatR-14.2.0`。
上游项目:https://github.com/LuckyPennySoftware/MediatR
LICENSE.md 为原目录同名文件的原样副本,声明 RPL 1.5 或商业许可。移除依赖不改变原许可要求。
## 直接抽取
- src/MediatR.Contracts/INotification.cs
- src/MediatR/INotificationHandler.cs(含同步 NotificationHandler 基类)
- src/MediatR/IPublisher.cs
- src/MediatR/INotificationPublisher.cs
- src/MediatR/NotificationHandlerExecutor.cs
- src/MediatR/NotificationPublishers/ForeachAwaitPublisher.cs
- src/MediatR/NotificationPublishers/TaskWhenAllPublisher.cs
- src/MediatR/Wrappers/NotificationHandlerWrapper.cs
以上代码注释已翻译为中文,许可声明保留原文;命名空间由 MediatR 改为 MAX.Notification,并添加来源说明。Wrapper 移除 Microsoft.Extensions.DependencyInjection,GetServices<T>() 改为标准 IServiceProvider.GetService(typeof(IEnumerable<T>)),空结果使用空集合,错误返回类型抛出转换异常。保留原处理器类型去重逻辑。
NotificationPublisher.cs 从 src/MediatR/Mediator.cs 抽取两个 Publish 重载、PublishCore、PublishNotification、通知缓存及相关字段。入口类改名,保留默认和自定义发布策略构造方式,增加构造参数 null 校验。去除请求响应、流以及第三方许可证检测调用,保留许可声明。
项目配置、使用说明和测试为新增内容。库不依赖第三方 NuGet 包,也排除全局 PolySharp 引用。
保留原版行为:只传递 CancellationToken,不主动检查取消;TaskWhenAllPublisher 枚举期间遇到同步异常时停止启动后续处理器。