protected override void Load(ContainerBuilder builder) { _configurationHolder = new ConfigurationHolder(); builder .RegisterInstance(_configurationHolder) .AsSelf() .SingleInstance(); builder .RegisterType <UserConfigUpdater>() .AsSelf() .SingleInstance(); ImmutableArray <Type> urnMappedTypes = UrnTypes.GetUrnTypesInAssemblies(_assemblies); if (!bool.TryParse(_keyValueConfiguration[UrnConfigurationConstants.TreatWarningsAsErrors], out bool treatWarningsAsErrors)) { treatWarningsAsErrors = false; } var exceptions = new List <Exception>(); foreach (Type urnMappedType in urnMappedTypes) { try { Register(builder, urnMappedType, treatWarningsAsErrors); } catch (Exception ex) when(!ex.IsFatal()) { exceptions.Add(ex); _logger.Error(ex, "Could not register URN-mapped type {Type}", urnMappedType); } } if (exceptions.Any()) { if (treatWarningsAsErrors) { throw new AggregateException(exceptions); } } }
public UserConfigUpdater( ConfigurationHolder configurationHolder, EnvironmentConfiguration applicationEnvironment) { _configurationHolder = configurationHolder; _fileName = Path.Combine(applicationEnvironment.ContentBasePath ?? Directory.GetCurrentDirectory(), "config.user"); if (File.Exists(_fileName)) { var fileInfo = new FileInfo(_fileName); if (fileInfo.Directory != null) { _fileSystemWatcher = new FileSystemWatcher(fileInfo.Directory.FullName, fileInfo.Name); _fileSystemWatcher.Changed += WatcherOnChanged; _fileSystemWatcher.Created += WatcherOnChanged; _fileSystemWatcher.Renamed += WatcherOnChanged; } } }