.NET Framework Class Library
ConfigurationManager..::.OpenMappedExeConfiguration Method

Opens the specified client configuration file as a Configuration object that uses the specified file mapping and user level.

Namespace:  System.Configuration
Assembly:  System.Configuration (in System.Configuration.dll)
Syntax

Visual Basic (Declaration)
Public Shared Function OpenMappedExeConfiguration ( _
    fileMap As ExeConfigurationFileMap, _
    userLevel As ConfigurationUserLevel _
) As Configuration
Visual Basic (Usage)
Dim fileMap As ExeConfigurationFileMap
Dim userLevel As ConfigurationUserLevel
Dim returnValue As Configuration

returnValue = ConfigurationManager.OpenMappedExeConfiguration(fileMap, _
    userLevel)
C#
public static Configuration OpenMappedExeConfiguration(
    ExeConfigurationFileMap fileMap,
    ConfigurationUserLevel userLevel
)
Visual C++
public:
static Configuration^ OpenMappedExeConfiguration(
    ExeConfigurationFileMap^ fileMap, 
    ConfigurationUserLevel userLevel
)
JScript
public static function OpenMappedExeConfiguration(
    fileMap : ExeConfigurationFileMap, 
    userLevel : ConfigurationUserLevel
) : Configuration

Parameters

fileMap
Type: System.Configuration..::.ExeConfigurationFileMap
An ExeConfigurationFileMap object that references configuration file to use instead of the application default configuration file.
userLevel
Type: System.Configuration..::.ConfigurationUserLevel
The ConfigurationUserLevel object for which you are opening the configuration.
Exceptions

ExceptionCondition
ConfigurationErrorsException

A configuration file could not be loaded.

Remarks

The ConfigurationUserLevel object determines the location of the configuration file being opened. 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).

NoteNote:

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.

Examples

The following code example shows how to use the OpenMappedExeConfiguration method to obtain all sections that are contained by the configuration file.

Visual Basic
' 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 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

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

Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Version Information

.NET Framework

Supported in: 3.5, 3.0, 2.0
See Also

Reference

Tags :


Page view tracker