/// <summary> /// 获取meta文件的地址和位置 /// </summary> /// <param name="fileSettings">ConfigFilesSetting 类实例</param> private static void GetMetaFileSettings(ConfigFilesSetting fileSettings) { AppSettingsSection section = ConfigurationBroker.GetLocalAppSettingsSection(); if (section != null) { if (section.Settings[ConfigurationBroker.MetaConfigurationItem] == null) { fileSettings.MetaConfigurationFile = ConfigurationBroker.LocalConfigurationFile; } else { fileSettings.MetaConfigurationFile = ConfigurationBroker.ReplaceEnvironmentVariablesInFilePath(section.Settings[ConfigurationBroker.MetaConfigurationItem].Value); } } if (string.IsNullOrEmpty(fileSettings.MetaConfigurationFile) == true) { fileSettings.MetaFilePosition = MetaConfigurationPosition.LocalFile; fileSettings.MetaConfigurationFile = ConfigurationBroker.LocalConfigurationFile; } else { fileSettings.MetaFilePosition = MetaConfigurationPosition.MetaFile; if (false == Path.IsPathRooted(fileSettings.MetaConfigurationFile)) { fileSettings.MetaConfigurationFile = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + fileSettings.MetaConfigurationFile; } ExceptionHelper.FalseThrow(File.Exists(fileSettings.MetaConfigurationFile), Resource.MetaFileNotFound, fileSettings.MetaConfigurationFile); } }
/// <summary> /// 加载machine、local配置文件,meta配置文件,meta中的配置节,将其缓存并建立缓存失效依赖。 /// 查找并在 ConfigFilesSetting 类实例中记录machine、local、meta和global配置文件的地址和 /// meta配置文件位置(枚举) /// </summary> /// <returns>ConfigFilesSetting 类实例</returns> private static ConfigFilesSetting LoadFilesSetting() { ConfigFilesSetting settings = new ConfigFilesSetting(); settings.MachineConfigurationFile = ConfigurationBroker.MachineConfigurationFile; settings.LocalConfigurationFile = ConfigurationBroker.LocalConfigurationFile; settings.GlobalConfigurationFile = ConfigurationBroker.GlobalConfigurationFile; MetaConfigurationSourceInstanceSection metaSection = ConfigurationBroker.GetMetaSourceInstanceSection(settings); if (metaSection != null) { string currPath; if (EnvironmentHelper.Mode == InstanceMode.Web) { currPath = HttpContext.Current.Request.Url.AbsoluteUri; } else { currPath = AppDomain.CurrentDomain.SetupInformation.ApplicationBase; } settings.GlobalConfigurationFile = ConfigurationBroker.ReplaceEnvironmentVariablesInFilePath(metaSection.Instances.GetMatchedPath(currPath)); if (string.IsNullOrEmpty(settings.GlobalConfigurationFile)) { settings.GlobalConfigurationFile = ConfigurationBroker.GlobalConfigurationFile; } else { if (false == Path.IsPathRooted(settings.GlobalConfigurationFile)) { settings.GlobalConfigurationFile = AppDomain.CurrentDomain.BaseDirectory.TrimEnd('\\') + "\\" + settings.GlobalConfigurationFile; } ExceptionHelper.FalseThrow(File.Exists(settings.GlobalConfigurationFile), Resource.GlobalFileNotFound, settings.GlobalConfigurationFile); } } return(settings); }