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)));
        }
Beispiel #2
0
        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();
            }
        }