void HandleMessage(IConsumeContext <TSubject> context) { var received = new ReceivedMessageImpl <TSubject>(context); try { using (context.CreateScope()) { _handler(context, context.Message); } } catch (Exception ex) { received.SetException(ex); } finally { _received.Add(received); } }
IEnumerable <Action <IConsumeContext <TMessage> > > Selector(TConsumer instance, IConsumeContext <TMessage> messageContext) { bool accept; using (messageContext.CreateScope()) { accept = instance.Accept(messageContext.Message); } if (accept) { yield return(context => { context.BaseContext.NotifyConsume(context, typeof(TConsumer).ToShortTypeName(), null); using (context.CreateScope()) { instance.Consume(context.Message); } }); } }