接口IHandleMessages具有逆变参数TMessage IHandleMessages<in TMessage>
SimpleRetryStrategy失败<TMessage>
这使得可能在IOC容器IHandleMessages<DerivedType>
注册和在处理程序实现:IHandleMessages<BaseType>
。那没问题。
问题在于Failed<TMessage>
包装失败的消息,其中TMessage不是逆变。这使得不可能有 执行处理程序像Handler : IHandleMessages<Failed<Base>>
和登记在IOC容器.As<IHandleMessages<Failed<DerivedType>>>()
我认为其合理有Failed<in TMessage>
但不Failed<TMessage>
你觉得呢?