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); } }