示例#1
0
        /// <summary>
        /// 获取标准WinForm应用程序的配置信息,合并App.config和global配置文件
        /// </summary>
        /// <param name="machineConfigPath">global配置文件地址</param>
        /// <param name="localConfigPath">本地应用程序配置文件地址</param>
        /// <param name="ignoreFileNotExist">是否忽略不存在的文件</param>
        /// <param name="fileDependencies">缓存依赖文件</param>
        /// <returns>App.config和global配置文件合并后的Configuration对象</returns>
        private static System.Configuration.Configuration GetStandardExeConfiguration(string machineConfigPath, string localConfigPath, bool ignoreFileNotExist, params string[] fileDependencies)
        {
            string cacheKey = ConfigurationBroker.CreateConfigurationCacheKey(machineConfigPath, localConfigPath);

            System.Configuration.Configuration config;

            if (ConfigurationCache.Instance.TryGetValue(cacheKey, out config) == false)
            {
                ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
                fileMap.MachineConfigFilename = machineConfigPath;
                fileMap.ExeConfigFilename     = localConfigPath;

                config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);

                Array.Resize <string>(ref fileDependencies, fileDependencies.Length + 2);
                fileDependencies[fileDependencies.Length - 2] = machineConfigPath;
                fileDependencies[fileDependencies.Length - 1] = localConfigPath;

                ConfigurationBroker.AddConfigurationToCache(cacheKey, config, ignoreFileNotExist, fileDependencies);
#if DELUXEWORKSTEST
                // 测试使用
                ConfigurationBroker.configurationReadFrom = ReadFrom.ReadFromFile;
#endif
            }
            else
            {
#if DELUXEWORKSTEST
                // 测试使用
                ConfigurationBroker.configurationReadFrom = ReadFrom.ReadFromCache;
#endif
            }

            return(config);
        }
示例#2
0
        /// <summary>
        /// 取得单独config文件中的 Configuration
        /// </summary>
        /// <param name="fileName">文件地址</param>
        /// <param name="fileDependencies">缓存依赖文件</param>
        /// <param name="ignoreFileNotExist">是否忽略不存在的文件</param>
        /// <returns>Configuration对象</returns>
        private static System.Configuration.Configuration GetSingleFileConfiguration(string fileName, bool ignoreFileNotExist, params string[] fileDependencies)
        {
            string cacheKey = ConfigurationBroker.CreateConfigurationCacheKey(fileName);

            System.Configuration.Configuration config;

            if (ConfigurationCache.Instance.TryGetValue(cacheKey, out config) == false)
            {
                config = ConfigurationManager.OpenMappedMachineConfiguration(new ConfigurationFileMap(fileName));

                Array.Resize <string>(ref fileDependencies, fileDependencies.Length + 1);
                fileDependencies[fileDependencies.Length - 1] = fileName;

                ConfigurationBroker.AddConfigurationToCache(cacheKey, config, ignoreFileNotExist, fileDependencies);
            }

            return(config);
        }
示例#3
0
        /// <summary>
        /// 获取标准Web应用程序的配置信息,合并Web.config和global配置文件
        /// </summary>
        /// <param name="machineConfigPath">global配置文件地址</param>
        /// <param name="ignoreFileNotExist">是否忽略不存在的文件</param>
        /// <param name="fileDependencies">缓存依赖文件</param>
        /// <returns>Web.config和global配置文件合并后的Configuration对象</returns>
        private static System.Configuration.Configuration GetStandardWebConfiguration(string machineConfigPath, bool ignoreFileNotExist, params string[] fileDependencies)
        {
            string cacheKey = ConfigurationBroker.CreateConfigurationCacheKey(machineConfigPath);

            System.Configuration.Configuration config;

            if (ConfigurationCache.Instance.TryGetValue(cacheKey, out config) == false)
            {
                WebConfigurationFileMap fileMap = new WebConfigurationFileMap();

                fileMap.MachineConfigFilename = machineConfigPath;
                VirtualDirectoryMapping vDirMap = new VirtualDirectoryMapping(
                    HttpContext.Current.Request.PhysicalApplicationPath,
                    true);

                fileMap.VirtualDirectories.Add("/", vDirMap);

                config = WebConfigurationManager.OpenMappedWebConfiguration(fileMap, "/",
                                                                            HttpContext.Current.Request.ServerVariables["INSTANCE_ID"]);

                Array.Resize <string>(ref fileDependencies, fileDependencies.Length + 1);
                fileDependencies[fileDependencies.Length - 1] = machineConfigPath;

                ConfigurationBroker.AddConfigurationToCache(cacheKey, config, ignoreFileNotExist, fileDependencies);
#if DELUXEWORKSTEST
                // 测试使用
                ConfigurationBroker.configurationReadFrom = ReadFrom.ReadFromFile;
#endif
            }
            else
            {
#if DELUXEWORKSTEST
                // 测试使用
                ConfigurationBroker.configurationReadFrom = ReadFrom.ReadFromCache;
#endif
            }

            return(config);
        }