protected virtual Cfg.Configuration GetOrBuildConfiguration(string configKey, Func <Cfg.Configuration> buildConfiguration) { if (ConfigurationCache == null) { return(buildConfiguration()); } var configuration = ConfigurationCache.LoadConfiguration(configKey, CacheDependencyFilePaths); if (configuration != null) { return(configuration); } configuration = buildConfiguration(); ConfigurationCache.SaveConfiguration(configKey, configuration); return(configuration); }