28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
// 摘自 MediatR 14.2.0,许可声明与修改记录见 LICENSE.md 和 UPSTREAM.md。
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
namespace MAX.Notification;
|
|
|
|
/// <summary>
|
|
/// 发布通知或事件,交由多个处理器处理。
|
|
/// </summary>
|
|
public interface IPublisher
|
|
{
|
|
/// <summary>
|
|
/// 异步向多个处理器分发通知。
|
|
/// </summary>
|
|
/// <param name="notification">通知对象。</param>
|
|
/// <param name="cancellationToken">可选的取消令牌。</param>
|
|
/// <returns>表示本次通知发布操作的任务。</returns>
|
|
Task Publish(object notification, CancellationToken cancellationToken = default);
|
|
|
|
/// <summary>
|
|
/// 异步向多个处理器分发通知。
|
|
/// </summary>
|
|
/// <param name="notification">通知对象。</param>
|
|
/// <param name="cancellationToken">可选的取消令牌。</param>
|
|
/// <returns>表示本次通知发布操作的任务。</returns>
|
|
Task Publish<TNotification>(TNotification notification, CancellationToken cancellationToken = default)
|
|
where TNotification : INotification;
|
|
} |