protected override void ConfigureContainer() { base.ConfigureContainer(); // Register the IUnityContainer so that we can access services from the // HTTP server's module handlers. ServiceRegistry.RegisterContainer(Container); var serializer = new ConfigurationFileSerializer(); var config = serializer.Read(); var sourceMgr = new FacialDetectionSourceManager(config); var sessionMgr = new RtspSessionManager(); var rtspHandler = new RtspRequestHandler(sourceMgr, sessionMgr); var dispatcher = new DefaultRequestDispatcher(); dispatcher.RegisterHandler("/stream", rtspHandler); var rtspServer = new RtspServer(config.RtspPort, dispatcher); var httpServer = new HttpServer(config.HttpPort); Container.RegisterInstance(config); Container.RegisterInstance(sessionMgr); Container.RegisterInstance(rtspServer); Container.RegisterInstance(httpServer); Container.RegisterInstance <IDetectionSourceManager>(sourceMgr); Container.RegisterType <IDataSourcesManager, DataSourcesManager>(new ContainerControlledLifetimeManager()); Container.RegisterInstance <ISerenityService>(new SerenityService(), new ContainerControlledLifetimeManager()); }