首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SimpleRetryStrategy Failed<TMessage>

SimpleRetryStrategy Failed<TMessage>
EN

Stack Overflow用户
提问于 2016-02-29 13:34:42
回答 1查看 108关注 0票数 1

接口IHandleMessages具有反向参数TMessage IHandleMessages<in TMessage>

这使得在Ioc容器IHandleMessages<DerivedType>中注册并在Handler:IHandleMessages<BaseType>中实现成为可能。这没什么。

这个问题存在于失败消息的Failed<TMessage>包装器中,其中TMessage不是反变体。这使得不可能有像Handler : IHandleMessages<Failed<Base>>这样的Handler实现。

并在Ioc容器.As<IHandleMessages<Failed<DerivedType>>>()中注册

我认为拥有Failed<in TMessage>而不是Failed<TMessage>是合理的

你认为如何?

EN

回答 1

Stack Overflow用户

发布于 2016-02-29 21:50:53

当我在Rebus中实现第二级重试机制时,我没有考虑这个场景,但我想支持它。

我已经将这个特性添加到0.99.36 (如果测试通过,其他一切看起来都很好的话,它将在几天后出现在NuGet上)。

但是,它看起来与您建议的略有不同,因为协方差和反向方差只能通过接口进行。

因此,Rebus现在分发一个IFailed<out TMessage>,因为当失败的消息是DerivedFromAbstractBaseClass时,您可以实现例如IHandleMessages<IFailed<AbstractBaseClass>>

留意一下NuGet.org -几天后它就会出来:)

同时,您可以看到代码是什么样子的在伴随的测试中

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

https://stackoverflow.com/questions/35700930

复制
相关文章

相似问题

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