private static void InitialiseContainer() { var containerBuilder = new ContainerBuilder(); IDatabaseConnectionCredentials connectionCredentials = _appConfigurationManager.GetDatabaseConnectionCredentials(); containerBuilder.Register <ILogger>(x => _logger).SingleInstance(); containerBuilder.Register <IDatabaseConnectionCredentials>(x => connectionCredentials).SingleInstance(); containerBuilder.RegisterType <MySqlConnectionWrapper>().As <IMySqlConnectionWrapper>().SingleInstance(); containerBuilder.RegisterType <SecurityDataRetrieverManager>().As <ISecurityDataRetrieverManager>().SingleInstance(); containerBuilder.Register(x => x.Resolve <ISecurityDataRetrieverManager>().GetSecurityDataRetriever()).As <ISecurityDataRetriever>(); containerBuilder.RegisterType <MySqlCommandWrapperFactory>().As <IMySqlCommandWrapperFactory>(); containerBuilder.RegisterType <PersistenceManager>().As <IPersistenceManager>(); containerBuilder.RegisterType <DataGrabTaskFactory>().As <IDataGrabTaskFactory>(); containerBuilder.RegisterType <DataModelFactory>().As <IDataModelFactory>(); _container = containerBuilder.Build(); }