public void AbortingMessageHandlingReallyAbortsMessageHandling() { var sender = CreateBus(SenderInputQueueName, new HandlerActivatorForTesting()).Start(1); var handlerBeforeAbort = new FirstHandler(); var handlerAfterAbort = new SecondHandler(); CreateBus(ReceiverInputQueueName, new HandlerActivatorForTesting() .UseHandler(handlerAfterAbort) .UseHandler(handlerBeforeAbort)).Start(1); pipelineInspector.SetOrder(typeof(FirstHandler), typeof(SecondHandler)); sender.Routing.Send(ReceiverInputQueueName, "wooooolalalalalaal"); Thread.Sleep(500); handlerBeforeAbort.WasExecuted.ShouldBe(true); handlerAfterAbort.WasExecuted.ShouldBe(false); }
public void Main() { /*** * 这里是为了简单方便,才这样使用的。 * 总的处理流程需要根据实际需要进行变化, * 可能单独一项业务需要指定的处理流程。 * 例如: * 处理A业务,处理流程为:FirstHandler --》ThreeHandler * 处理B业务,处理流程为:SecondHandler --》ThreeHandler * 。。。。。。。。。。。 * 这个时候,建议为每一个业务(A/B/C/D......)设置一个方法或者类 */ IHandler handler1 = new FirstHandler(); IHandler handler2 = new SecondHandler(); IHandler handler3 = new ThreeHandler(); handler1.SetNextHandler(handler2); handler2.SetNextHandler(handler3); for (int i = 0; i < 5; i++) { handler1.Handle(); } }
private void Form1_Load(object sender, EventArgs e) { secondHandler = new SecondHandler(); generalSource = new GeneralSource(); generalSource.Successor = secondHandler; }