System.Configuration.ConfigurationManager.OpenMappedExeConfiguration 方法
方法描述
可将指定的客户端配置文件作为使用指定文件映射和用户级别的 Configuration 对象打开。
语法定义(C# System.Configuration.ConfigurationManager.OpenMappedExeConfiguration 方法 的用法)
public static Configuration OpenMappedExeConfiguration( ExeConfigurationFileMap fileMap, ConfigurationUserLevel userLevel )
参数/返回值
参数值/返回值 | 参数类型/返回类型 | 参数描述/返回描述 |
---|---|---|
fileMap | System-Configuration-ExeConfigurationFileMap | 一个 ExeConfigurationFileMap 对象,该对象引用代替应用程序的默认配置文件使用的配置文件。 |
userLevel | System-Configuration-ConfigurationUserLevel | 要打开配置的 ConfigurationUserLevel 对象。 |
返回值 | System.Configuration.Configuration | 一个 Configuration 对象。 |
提示和注释
ConfigurationUserLevel 对象确定所打开的配置文件的位置。 它指示该文件是不具有用户级别(配置文件与应用程序位于同一目录中),还是具有一个依每个用户而定的用户级别(配置文件位于 userLevel 所确定的应用程序设置路径中)。
注意
若要获取资源的 Configuration 对象,您的代码必须对它从中继承设置的所有配置文件具有读权限。 若要更新配置文件,您的代码还必须对该配置文件及其所在目录具有写权限。
System.Configuration.ConfigurationManager.OpenMappedExeConfiguration 方法例子
下面的代码示例演示如何使用 OpenMappedExeConfiguration 方法获取配置文件所包含的所有节。
// Access a configuration file using mapping. // This function uses the OpenMappedExeConfiguration // method to access a new configuration file. // It also gets the custom ConsoleSection and // sets its ConsoleEment BackgroundColor and // ForegroundColor properties to green and red // respectively. Then it uses these properties to // set the console colors. public static void MapExeConfiguration() { // Get the application configuration file. System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration( ConfigurationUserLevel.None); Console.WriteLine(config.FilePath); if (config == null) { Console.WriteLine( "The configuration file does not exist."); Console.WriteLine( "Use OpenExeConfiguration to create the file."); } // Create a new configuration file by saving // the application configuration to a new file. string appName = Environment.GetCommandLineArgs()[0]; string configFile = string.Concat(appName, ".2.config"); config.SaveAs(configFile, ConfigurationSaveMode.Full); // Map the new configuration file. ExeConfigurationFileMap configFileMap = new ExeConfigurationFileMap(); configFileMap.ExeConfigFilename = configFile; // Get the mapped configuration file config = ConfigurationManager.OpenMappedExeConfiguration( configFileMap, ConfigurationUserLevel.None); // Make changes to the new configuration file. // This is to show that this file is the // one that is used. string sectionName = "consoleSection"; ConsoleSection customSection = (ConsoleSection)config.GetSection(sectionName); if (customSection == null) { customSection = new ConsoleSection(); config.Sections.Add(sectionName, customSection); } else // Change the section configuration values. customSection = (ConsoleSection)config.GetSection(sectionName); customSection.ConsoleElement.BackgroundColor = ConsoleColor.Green; customSection.ConsoleElement.ForegroundColor = ConsoleColor.Red; // Save the configuration file. config.Save(ConfigurationSaveMode.Modified); // Force a reload of the changed section. This // makes the new values available for reading. ConfigurationManager.RefreshSection(sectionName); // Set console properties using the // configuration values contained in the // new configuration file. Console.BackgroundColor = customSection.ConsoleElement.BackgroundColor; Console.ForegroundColor = customSection.ConsoleElement.ForegroundColor; Console.Clear(); Console.WriteLine(); Console.WriteLine("Using OpenMappedExeConfiguration."); Console.WriteLine("Configuration file is: {0}", config.FilePath); }
异常
异常 | 异常描述 |
---|---|
ConfigurationErrorsException | 未能加载配置文件。 |
版本信息
.NET Framework 受以下版本支持:4、3.5、3.0、2.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1
适用平台
Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。