/// <summary> /// /// </summary> /// <param name="globalConfig"></param> /// <returns></returns> public override IConfigurationProvider CreateConfigurationProvider(object globalConfig) { CompositeConfigurationProvider output = new CompositeConfigurationProvider(Minesweeper.Core.Configurations.ConfigurationProvider.CreateLocalProvider()); CompositeConfigurationProviderConfiguration config = this; if (config.Providers != null && config.Providers.Count > 0) { foreach (var c in config.Providers) { IConfigurationProvider provider = c.CreateConfigurationProvider(globalConfig); output.AddProvider(provider); } } return(output); }
public override IConfigurationProvider CreateConfigurationProvider(object globalConfig) { if (this.RefreshTime <= TimeSpan.Zero) { this.RefreshTime = new TimeSpan(0, 1, 0); } if (string.IsNullOrEmpty(this.FileName)) { AppConfigConfigurationProvider output; if (HttpContext.Current == null && OperationContext.Current == null) { output = new AppConfigConfigurationProvider(); } else { output = new WebConfigConfigurationProvider(); } output.RefreshTime = this.RefreshTime; return(output); } else { AppConfigConfigurationProvider local = new AppConfigConfigurationProvider(); string baseDirectory = local.ApplicationPath; if (globalConfig != null && globalConfig is CompositeConfigurationProviderConfiguration) { CompositeConfigurationProviderConfiguration cComp = globalConfig as CompositeConfigurationProviderConfiguration; if (!string.IsNullOrEmpty(cComp.BaseDirectory)) { baseDirectory = Path.Combine(baseDirectory, cComp.BaseDirectory); baseDirectory = Path.GetFullPath(baseDirectory); } } baseDirectory = Path.Combine(baseDirectory, this.FileName); local.ConfigurationFileName = baseDirectory; local.RefreshTime = this.RefreshTime; return(local); } }