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 }