Interface IHandleMessages a paramètre contravariante TMessage IHandleMessages<in TMessage>
SimpleRetryStrategy Échec <TMessage>
ce qui rend possible pour vous inscrire à Ioc Container IHandleMessages<DerivedType>
et ont mise en œuvre dans le gestionnaire: IHandleMessages<BaseType>
. C'est Ok.
Le problème consiste en wrapper Failed<TMessage>
pour les messages ayant échoué, où TMessage n'est pas contravariant. Cela rend impossible d'avoir la mise en œuvre du gestionnaire comme Handler : IHandleMessages<Failed<Base>>
et l'enregistrement dans le conteneur IoC .As<IHandleMessages<Failed<DerivedType>>>()
Je pense que raisonnable d'avoir Failed<in TMessage>
mais pas Failed<TMessage>
Que pensez-vous?