首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将MediatR PublishStrategy添加到现有项目

如何将MediatR PublishStrategy添加到现有项目
EN

Stack Overflow用户
提问于 2019-12-13 18:11:18
回答 2查看 504关注 0票数 2

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

代码语言:javascript
复制
private readonly IMediator _requestsRouter; // from constructor injection 

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

我想将默认PublishStrategy更改为ParallelNoWait = 3,

问:如何使用sample的MediatR PublishStrategies扩展nuget的MediatR功能?

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

EN

回答 2

Stack Overflow用户

发布于 2019-12-27 05:15:25

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

代码语言:javascript
复制
public class MyPublisher : Publisher
{
    public MyPublisher(ServiceFactory serviceFactory) : base(serviceFactory)
    {
        DefaultStrategy = PublishStrategy.ParallelNoWait;
    }
}

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

当然,在DI容器中而不是在Publisher中注册您的自定义MyPublisher

代码语言:javascript
复制
services.AddSingleton<MyPublisher>();
票数 2
EN

Stack Overflow用户

发布于 2021-09-09 13:13:31

如果想要的解决方案是触发并忘记,那么在发布时不需要等待一个简单得多的解决方案。这也更好地表达了代码的意图,比如等待,但跳过是一种误导。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59320296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档