Example #1
0
        static void Main()
        {
            var container = new Castle.Windsor.WindsorContainer();

            container.AddFacility <TypedFactoryFacility>();

            container.Install(new LogInstaller());

            container.Register(
                Component.For <IIntegrationEventHandlerFactory>().AsFactory(new IntegrationEventHandlerComponentSelector()),

                Component.For <IEventBusSubscriptionsManager>()
                .ImplementedBy <InMemoryEventBusSubscriptionsManager>(),

                Component.For <IRabbitMQPersistentConnection>()
                .ImplementedBy <DefaultRabbitMQPersistentConnection>(),


                Component.For <IEventBus>()
                .ImplementedBy <EventBusRabbitMQ>());

            var x = container.Resolve <IEventBus>();

            while (Console.ReadLine() != "exit")
            {
                for (int i = 0; i < 10; i++)
                {
                    x.Publish(new TestIntegrationEvent());
                }
            }

            container.Dispose();
        }
    private static void Main(string[] args)
    {
        var container = new Castle.Windsor.WindsorContainer();

        container.AddFacility <TypedFactoryFacility>();

        container.Register(
            Classes.FromAssemblyInThisApplication()
            .BasedOn(typeof(IModulePart <>))
            .WithService.Base()
            .LifestyleTransient(),
            Component.For <IModulePartFactory>().AsFactory()
            );
        var factory         = container.Resolve <IModulePartFactory>();
        var moduleForWebUrl = factory.FindModulePartFor <WebUrl>();
        // type is WebUrlModule
        var moduleForStockDelay = factory.FindModulePartFor <StockDelay>();
        // type is StockDelayModule
    }