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