ConfigurationManager.OpenMappedExeConfiguration ConfigurationManager.OpenMappedExeConfiguration ConfigurationManager.OpenMappedExeConfiguration ConfigurationManager.OpenMappedExeConfiguration Method

定義

將指定的用戶端組態檔做為 Configuration 物件開啟。Opens the specified client configuration file as a Configuration object.

多載

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

開啟指定的用戶端組態檔,做為 Configuration 使用指定檔案對應和使用者層級的物件。Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

開啟指定的用戶端組態檔,做為使用指定之檔案對應、使用者層級和預先載入選項的 Configuration 物件。Opens the specified client configuration file as a Configuration object that uses the specified file mapping, user level, and preload option.

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel)

開啟指定的用戶端組態檔,做為 Configuration 使用指定檔案對應和使用者層級的物件。Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

public:
 static System::Configuration::Configuration ^ OpenMappedExeConfiguration(System::Configuration::ExeConfigurationFileMap ^ fileMap, System::Configuration::ConfigurationUserLevel userLevel);
public static System.Configuration.Configuration OpenMappedExeConfiguration (System.Configuration.ExeConfigurationFileMap fileMap, System.Configuration.ConfigurationUserLevel userLevel);
static member OpenMappedExeConfiguration : System.Configuration.ExeConfigurationFileMap * System.Configuration.ConfigurationUserLevel -> System.Configuration.Configuration
Public Shared Function OpenMappedExeConfiguration (fileMap As ExeConfigurationFileMap, userLevel As ConfigurationUserLevel) As Configuration

參數

fileMap
ExeConfigurationFileMap ExeConfigurationFileMap ExeConfigurationFileMap ExeConfigurationFileMap

ExeConfigurationFileMap 物件,參考代替應用程式預設組態檔使用的組態檔。An ExeConfigurationFileMap object that references configuration file to use instead of the application default configuration file.

userLevel
ConfigurationUserLevel ConfigurationUserLevel ConfigurationUserLevel ConfigurationUserLevel

對其開啟組態的 ConfigurationUserLevel 物件。The ConfigurationUserLevel object for which you are opening the configuration.

傳回

組態物件。The configuration object.

例外狀況

範例

下列程式碼範例示範如何使用OpenMappedExeConfiguration方法,以取得組態檔所包含的所有區段。The following code example shows how to use the OpenMappedExeConfiguration method to obtain all sections that are contained by the configuration file.


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


' 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 ConsoleElement BackgroundColor and
' ForegroundColor properties to green and red
' respectively. Then it uses these properties to
' set the console colors.  
Public Shared Sub MapExeConfiguration()

    ' Get the application configuration file.
    Dim config As System.Configuration.Configuration = _
    ConfigurationManager.OpenExeConfiguration( _
        ConfigurationUserLevel.None)

    Console.WriteLine(config.FilePath)

    If config Is Nothing Then
        Console.WriteLine( _
        "The configuration file does not exist.")
        Console.WriteLine( _
        "Use OpenExeConfiguration to create file.")
    End If

    ' Create a new configuration file by saving 
    ' the application configuration to a new file.
    Dim appName As String = _
        Environment.GetCommandLineArgs()(0)

    Dim configFile As String = _
        String.Concat(appName, "2.config")
    config.SaveAs(configFile, _
                  ConfigurationSaveMode.Full)

    ' Map the new configuration file.
    Dim configFileMap As 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.
    Dim sectionName As String = "consoleSection"

    Dim customSection As ConsoleSection = _
        DirectCast(config.GetSection(sectionName),  _
            ConsoleSection)

    If customSection Is Nothing Then
        customSection = New ConsoleSection()
        config.Sections.Add(sectionName, customSection)
    End If

    ' Change the section configuration values.
    customSection = _
        DirectCast(config.GetSection(sectionName),  _
            ConsoleSection)
    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)
End Sub

備註

ConfigurationUserLevel物件可以決定要開啟的組態檔的位置。The ConfigurationUserLevel object determines the location of the configuration file being opened. 它會指出檔案是否有任何使用者層級 (在組態檔是在應用程式的相同目錄中) 或個別使用者層級 (設定檔是位於應用程式設定的路徑取決於userLevel)。It indicates whether the file has no user level (the configuration file is in the same directory as the application) or has a per-user level (the configuration file is in an application settings path determined by userLevel).

注意

若要取得Configuration物件對於資源,您的程式碼必須擁有讀取權限繼承設定的所有設定檔。To obtain the Configuration object for a resource, your code must have read permissions on all the configuration files from which it inherits settings. 若要更新組態檔,您的程式碼必須額外擁有組態檔,它所在的目錄的寫入權限。To update a configuration file, your code must additionally have write permissions for both the configuration file and the directory in which it exists.

另請參閱

OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean)

開啟指定的用戶端組態檔,做為使用指定之檔案對應、使用者層級和預先載入選項的 Configuration 物件。Opens the specified client configuration file as a Configuration object that uses the specified file mapping, user level, and preload option.

public:
 static System::Configuration::Configuration ^ OpenMappedExeConfiguration(System::Configuration::ExeConfigurationFileMap ^ fileMap, System::Configuration::ConfigurationUserLevel userLevel, bool preLoad);
public static System.Configuration.Configuration OpenMappedExeConfiguration (System.Configuration.ExeConfigurationFileMap fileMap, System.Configuration.ConfigurationUserLevel userLevel, bool preLoad);
static member OpenMappedExeConfiguration : System.Configuration.ExeConfigurationFileMap * System.Configuration.ConfigurationUserLevel * bool -> System.Configuration.Configuration
Public Shared Function OpenMappedExeConfiguration (fileMap As ExeConfigurationFileMap, userLevel As ConfigurationUserLevel, preLoad As Boolean) As Configuration

參數

fileMap
ExeConfigurationFileMap ExeConfigurationFileMap ExeConfigurationFileMap ExeConfigurationFileMap

ExeConfigurationFileMap 物件,該物件會參考要使用的組態檔,而不是預設的應用程式組態檔。An ExeConfigurationFileMap object that references the configuration file to use instead of the default application configuration file.

userLevel
ConfigurationUserLevel ConfigurationUserLevel ConfigurationUserLevel ConfigurationUserLevel

對其開啟組態的 ConfigurationUserLevel 物件。The ConfigurationUserLevel object for which you are opening the configuration.

preLoad
Boolean Boolean Boolean Boolean

true 表示要預先載入所有區段群組和區段,否則為 falsetrue to preload all section groups and sections; otherwise, false.

傳回

組態物件。The configuration object.

例外狀況

備註

ConfigurationUserLevel物件判斷正在開啟組態檔的位置。The ConfigurationUserLevel object determines the location of the configuration file that is being opened. 它會指出檔案是否有任何使用者層級 (在組態檔是在應用程式的相同目錄中) 或個別使用者層級 (在組態檔是位於應用程式設定的路徑取決於userLevel)。It indicates whether the file has no user level (the configuration file is in the same directory as the application) or has a per-user level (the configuration file is in an application settings path that is determined by userLevel).

注意

若要取得Configuration物件對於資源,您的程式碼必須擁有讀取權限繼承設定的所有設定檔。To obtain the Configuration object for a resource, your code must have read permissions on all the configuration files from which it inherits settings. 若要更新組態檔,您的程式碼必須額外擁有組態檔,它所在的目錄的寫入權限。To update a configuration file, your code must additionally have write permissions for both the configuration file and the directory in which it exists.

如需程式碼範例,請參閱OpenMappedExeConfiguration多載。For a code example, see the OpenMappedExeConfiguration overload.

適用於