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