public void CanRegisterSomeHandlerInTheRightWay() { var container = new WindsorContainer(); container.RegisterHandler <SomeHandler>(); var stringHandlers = container.ResolveAll <IHandleMessages <string> >(); var stringHandlersAgain = container.ResolveAll <IHandleMessages <string> >(); Assert.That(stringHandlers.Any(h => h is SomeHandler), Is.True, "Did not find SomeHandler among the following available handler instances: {0}", string.Join(", ", stringHandlers.Select(h => h.GetType().Name))); Assert.That(stringHandlers.Intersect(stringHandlersAgain).Any(), Is.False, @"Did not expect any instances to be common among {0} and {1} which were resolved in two separate ResolveAll calls", string.Join(", ", stringHandlers.Select(h => h.GetType().Name)), string.Join(", ", stringHandlersAgain.Select(h => h.GetType().Name))); }
static void Main() { Logging.Initialize("backend2"); using (var container = new WindsorContainer()) { container.RegisterHandler <DidStuffInTheBackgroundHandler>(); container.Register( Component.For <HttpClient>() .UsingFactoryMethod(k => { var messageContext = k.Resolve <IMessageContext>(); var client = new HttpClient(); var correlationId = messageContext.Message.Headers[Headers.CorrelationId]; client.DefaultRequestHeaders.Add("x-correlation-id", correlationId); return(client); }) .LifestylePerRebusMessage() ); var bus = Configure.With(new CastleWindsorContainerAdapter(container)) .Logging(Config.Logging) .Transport(t => t.UseMsmq("backend2")) .Subscriptions(Config.Subscriptions) .Routing(Config.Routing) .Options(o => o.SetMaxParallelism(50)) .Start(); bus.Subscribe <DidStuffInTheBackground>().Wait(); Console.WriteLine("Press ENTER to quit"); Console.ReadLine(); } }