public static void Start(IWireUpEventStore eventStorePersistanceWireUp) { log4net.Config.XmlConfigurator.Configure(); CreateMaps(); ObjectFactory.Configure(containerToConfigure => { containerToConfigure.Scan(scanner => { scanner.AssembliesFromApplicationBaseDirectory(assembly => assembly.FullName.Contains("Example")); scanner.AddAllTypesOf <IStartup>(); scanner.WithDefaultConventions(); scanner.SingleImplementationsOfInterface(); }); containerToConfigure.For <ILog>().Use(LogManager.GetLogger(typeof(StructuremapMvc))); containerToConfigure.For <IMappingEngine>().Use(Mapper.Engine); containerToConfigure.For <IIdentity>().Use(() => HttpContext.Current.User.Identity); }); var container = ObjectFactory.Container; foreach (var task in container.GetAllInstances <IStartup>()) { task.Execute(container); } ObjectFactory.Configure(containerToConfigure => { containerToConfigure.For <IStoreEvents>().Singleton().Use( eventStorePersistanceWireUp.Execute(Wireup.Init()) .UsingSynchronousDispatchScheduler( new DelegateMessageDispatcher(x => { var eventPublisher = container.GetInstance <IEventPublisher>(); foreach (var eventMessage in x.Events) { eventPublisher.PublishEvent(eventMessage.Body); } })) .Build()); }); DependencyResolver.SetResolver(new StructureMapDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container); }
public static void Start(IWireUpEventStore eventStorePersistanceWireUp) { log4net.Config.XmlConfigurator.Configure(); CreateMaps(); ObjectFactory.Configure(containerToConfigure => { containerToConfigure.Scan(scanner => { scanner.AssembliesFromApplicationBaseDirectory(assembly => assembly.FullName.Contains("Example")); scanner.AddAllTypesOf<IStartup>(); scanner.WithDefaultConventions(); scanner.SingleImplementationsOfInterface(); }); containerToConfigure.For<ILog>().Use(LogManager.GetLogger(typeof(StructuremapMvc))); containerToConfigure.For<IMappingEngine>().Use(Mapper.Engine); containerToConfigure.For<IIdentity>().Use(() => HttpContext.Current.User.Identity); }); var container = ObjectFactory.Container; foreach (var task in container.GetAllInstances<IStartup>()) { task.Execute(container); } ObjectFactory.Configure(containerToConfigure => { containerToConfigure.For<IStoreEvents>().Singleton().Use( eventStorePersistanceWireUp.Execute(Wireup.Init()) .UsingSynchronousDispatchScheduler( new DelegateMessageDispatcher(x => { var eventPublisher = container.GetInstance<IEventPublisher>(); foreach (var eventMessage in x.Events) { eventPublisher.PublishEvent(eventMessage.Body); } })) .Build()); }); DependencyResolver.SetResolver(new StructureMapDependencyResolver(container)); GlobalConfiguration.Configuration.DependencyResolver = new StructureMapDependencyResolver(container); }