public void RegisterServices(IContainer container, CompositionRootSettings settings)
        {
            // Registers the default implementations
            container.RegisterLazySingleton<ILogger, EmptyLogger>();
            container.RegisterLazySingleton<ILoggerSerializer, JsonLoggerSerializer>();
            container.RegisterLazySingleton<IStopwatch, DefaultStopwatch>();
            container.RegisterLazySingleton<IValidator, DataAnnotationsValidator>();
            container.RegisterLazySingleton<IClock, SystemClock>();
            container.RegisterLazySingleton<IAttributeFinder, AttributeFinder>();

            if (settings.ApplicationTypes == null) return;

            // Registers all the implementations from the application
            foreach (var type in settings.ApplicationTypes)
            {
                var interfaces = ExcludeEventHandlersInterfaces(type).ToList();

                foreach (var i in interfaces)
                    container.RegisterTransient(i, type);
            }
        }