gpt4 book ai didi

c# - 如何将 MediatR PublishStrategy 添加到现有项目

转载 作者:行者123 更新时间:2023-12-04 10:54:04 26 4
gpt4 key购买 nike

现在我像这样使用 MediatR 通知:

private readonly IMediator _requestsRouter; // from constructor injection 

OrderCreatedEvent orderCreatedEvent = new OrderCreatedEvent(x,y,z);
await _requestRouter.Publish(orderCreatedEvent);

我想更改默认值 PublishStrategyParallelNoWait = 3,
问题:如何使用来自 sample 的 MediatR PublishStrategies 从 nuget 扩展 MediatR 功能?

我知道我可以下载 MediatR 源代码,从 MediatR.Examples.PublishStrategies 添加代码并构建我自己的库,但也许还有另一种“快速”方式?

最佳答案

您可以扩展 Publish创建定义您自己的子类 DefaultStrategy :

public class MyPublisher : Publisher
{
public MyPublisher(ServiceFactory serviceFactory) : base(serviceFactory)
{
DefaultStrategy = PublishStrategy.ParallelNoWait;
}
}

因此,您可以通过调用基本构造函数并覆盖 DefaultStrategy 的值来保持 Mediatr 中的源代码完整无缺。成员被初始化。

当然,注册您的自定义 MyPublisher在您的 DI 容器中而不是 Publisher :
services.AddSingleton<MyPublisher>();

关于c# - 如何将 MediatR PublishStrategy 添加到现有项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59320296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com