J'utilise Rebus 3.0.1 avec Simpleinjector. Je me suis inscrit un décorateur, pour l'exploitation forestière, de tous les gestionnaires, de cette façon:ReBus: Impossible d'utiliser les sagas avec les gestionnaires décorateur
container.RegisterDecorator(typeof(IHandleMessages<>), typeof(HandlerLogDecorator<>));
Tout fonctionne très bien, à l'exception du Sagas: parce que, dans LoadSagaDataStep, le code suivant
var handlerInvokersForSagas = context.Load<HandlerInvokers>()
.Where(l => l.HasSaga)
.ToList();
n'est pas en mesure de trouver la Saga sous les couvertures.
Si je désinscrit les décorateurs, la saga recommence à fonctionner.
Une suggestion pour concilier les sagas et les décorateurs handlers?
Désolé je pensais que la réponse a résolu le problème, mais ce n'est pas le cas. Maintenant que j'allais mettre la main dessus, j'ai remarqué que la décoration du pipeline n'est pas la même chose que la décoration des manutentionnaires. En fait, vous ne pouvez pas décorer l'unique exécution de 'await invoker.Invoke();' mais l'exécution de la liste de 'HandlerInvokers' (ce que fait déjà Rebus). Des suggestions? – ilcorvo
Extrema ratio serait de remplacer 'DispatchIncomingMessageStep' dans le pipeline, mais je ne l'aime pas parce que' DispatchIncomingMessageStep' est une partie centrale de la structure. – ilcorvo