示例#1
0
        /// <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);
        }
示例#2
0
        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);
            }
        }