protected override ConfigLoadResult LoadConfigCore() { LogTraceMessage($"Loading config {this}"); var projectLevelConfigProvider = new XmlFileConfigProvider(GetConfigFilePath(ProjectFolder), TraceMessageHandler); _fileConfigProviders = CreateFileConfigProviderList(projectLevelConfigProvider, ProjectFolder); return(CombineFileConfigProvidersAndSaveResult()); }
private List <XmlFileConfigProvider> CreateFileConfigProviderList(XmlFileConfigProvider firstConfigProvider, string startFolderPath) { var fileConfigProviders = new List <XmlFileConfigProvider> { firstConfigProvider }; LogTraceMessage(IndentHelper.Indent($"InheritanceDepth={firstConfigProvider.InheritanceDepth}", 1)); var currentFolder = startFolderPath; for (var i = 0; i < firstConfigProvider.InheritanceDepth; i++) { currentFolder = Directory.GetParent(currentFolder)?.FullName; if (string.IsNullOrWhiteSpace(currentFolder)) { break; } var higherLevelConfigProvider = new XmlFileConfigProvider(GetConfigFilePath(currentFolder), TraceMessageHandler); fileConfigProviders.Add(higherLevelConfigProvider); } return(fileConfigProviders); }