ConfigurationManager.OpenExeConfiguration Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Abre el archivo de configuración de cliente especificado como un objeto Configuration.
Sobrecargas
OpenExeConfiguration(ConfigurationUserLevel) |
Abre el archivo de configuración para la aplicación actual como un objeto Configuration. |
OpenExeConfiguration(String) |
Abre el archivo de configuración de cliente especificado como un objeto Configuration. |
OpenExeConfiguration(ConfigurationUserLevel)
- Source:
- ConfigurationManager.cs
- Source:
- ConfigurationManager.cs
- Source:
- ConfigurationManager.cs
Abre el archivo de configuración para la aplicación actual como un objeto Configuration.
public:
static System::Configuration::Configuration ^ OpenExeConfiguration(System::Configuration::ConfigurationUserLevel userLevel);
public static System.Configuration.Configuration OpenExeConfiguration (System.Configuration.ConfigurationUserLevel userLevel);
static member OpenExeConfiguration : System.Configuration.ConfigurationUserLevel -> System.Configuration.Configuration
Public Shared Function OpenExeConfiguration (userLevel As ConfigurationUserLevel) As Configuration
Parámetros
- userLevel
- ConfigurationUserLevel
Uno de los valores de enumeración que especifica el nivel de usuario para el que va a abrir la configuración.
Devoluciones
Archivo de configuración de la aplicación actual.
Excepciones
No se pudo cargar un archivo de configuración.
Ejemplos
En el ejemplo de código siguiente, se muestra cómo se utiliza el método OpenExeConfiguration.
// Get the roaming configuration file associated
// with the application.
// This function uses the OpenExeConfiguration(
// ConfigurationUserLevel userLevel) method to
// get the configuration file.
// It also creates a custom ConsoleSection and
// sets its ConsoleElement BackgroundColor and
// ForegroundColor properties to blue and yellow
// respectively. Then it uses these properties to
// set the console colors.
public static void GetRoamingConfiguration()
{
// Define the custom section to add to the
// configuration file.
string sectionName = "consoleSection";
ConsoleSection currentSection = null;
// Get the roaming configuration
// that applies to the current user.
Configuration roamingConfig =
ConfigurationManager.OpenExeConfiguration(
ConfigurationUserLevel.PerUserRoaming);
// Map the roaming configuration file. This
// enables the application to access
// the configuration file using the
// System.Configuration.Configuration class
ExeConfigurationFileMap configFileMap =
new ExeConfigurationFileMap();
configFileMap.ExeConfigFilename =
roamingConfig.FilePath;
// Get the mapped configuration file.
Configuration config =
ConfigurationManager.OpenMappedExeConfiguration(
configFileMap, ConfigurationUserLevel.None);
try
{
currentSection =
(ConsoleSection)config.GetSection(
sectionName);
// Synchronize the application configuration
// if needed. The following two steps seem
// to solve some out of synch issues
// between roaming and default
// configuration.
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of the changed section,
// if needed. This makes the new values available
// for reading.
ConfigurationManager.RefreshSection(sectionName);
if (currentSection == null)
{
// Create a custom configuration section.
currentSection = new ConsoleSection();
// Define where in the configuration file
// hierarchy the associated
// configuration section can be declared.
// The following assignment assures that
// the configuration information can be
// defined in the user.config file in the
// roaming user directory.
currentSection.SectionInformation.AllowExeDefinition =
ConfigurationAllowExeDefinition.MachineToLocalUser;
// Allow the configuration section to be
// overridden by lower-level configuration files.
// This means that lower-level files can contain
// the section (use the same name) and assign
// different values to it as done by the
// function GetApplicationConfiguration() in this
// example.
currentSection.SectionInformation.AllowOverride =
true;
// Store console settings for roaming users.
currentSection.ConsoleElement.BackgroundColor =
ConsoleColor.Blue;
currentSection.ConsoleElement.ForegroundColor =
ConsoleColor.Yellow;
// Add configuration information to
// the configuration file.
config.Sections.Add(sectionName, currentSection);
config.Save(ConfigurationSaveMode.Modified);
// Force a reload of the changed section. This
// makes the new values available for reading.
ConfigurationManager.RefreshSection(
sectionName);
}
}
catch (ConfigurationErrorsException e)
{
Console.WriteLine("[Exception error: {0}]",
e.ToString());
}
// Set console properties using values
// stored in the configuration file.
Console.BackgroundColor =
currentSection.ConsoleElement.BackgroundColor;
Console.ForegroundColor =
currentSection.ConsoleElement.ForegroundColor;
// Apply the changes.
Console.Clear();
// Display feedback.
Console.WriteLine();
Console.WriteLine(
"Using OpenExeConfiguration(ConfigurationUserLevel).");
Console.WriteLine(
"Configuration file is: {0}", config.FilePath);
}
' Get the roaming configuration file associated
' with the application.
' This function uses the OpenExeConfiguration(
' ConfigurationUserLevel userLevel) method to
' get the configuration file.
' It also creates a custom ConsoleSection and
' sets its ConsoleElement BackgroundColor and
' ForegroundColor properties to blue and yellow
' respectively. Then it uses these properties to
' set the console colors.
Public Shared Sub GetRoamingConfiguration()
' Define the custom section to add to the
' configuration file.
Dim sectionName As String = "consoleSection"
Dim currentSection As ConsoleSection = Nothing
' Get the roaming configuration
' that applies to the current user.
Dim roamingConfig As Configuration = _
ConfigurationManager.OpenExeConfiguration( _
ConfigurationUserLevel.PerUserRoaming)
' Map the roaming configuration file. This
' enables the application to access
' the configuration file using the
' System.Configuration.Configuration class
Dim configFileMap As New ExeConfigurationFileMap()
configFileMap.ExeConfigFilename = _
roamingConfig.FilePath
' Get the mapped configuration file.
Dim config As Configuration = _
ConfigurationManager.OpenMappedExeConfiguration( _
configFileMap, ConfigurationUserLevel.None)
Try
currentSection = DirectCast( _
config.GetSection(sectionName), _
ConsoleSection)
' Synchronize the application configuration
' if needed. The following two steps seem
' to solve some out of synch issues
' between roaming and default
' configuration.
config.Save(ConfigurationSaveMode.Modified)
' Force a reload of the changed section,
' if needed. This makes the new values available
' for reading.
ConfigurationManager.RefreshSection(sectionName)
If currentSection Is Nothing Then
' Create a custom configuration section.
currentSection = New ConsoleSection()
' Define where in the configuration file
' hierarchy the associated
' configuration section can be declared.
' The following assignment assures that
' the configuration information can be
' defined in the user.config file in the
' roaming user directory.
currentSection.SectionInformation. _
AllowExeDefinition = _
ConfigurationAllowExeDefinition. _
MachineToLocalUser
' Allow the configuration section to be
' overridden by lower-level configuration
' files.
' This means that lower-level files can
' contain()the section (use the same name)
' and assign different values to it as
' done by the function
' GetApplicationConfiguration() in this
' example.
currentSection.SectionInformation. _
AllowOverride = True
' Store console settings for roaming users.
currentSection.ConsoleElement. _
BackgroundColor = ConsoleColor.Blue
currentSection.ConsoleElement. _
ForegroundColor = ConsoleColor.Yellow
' Add configuration information to
' the configuration file.
config.Sections.Add(sectionName, _
currentSection)
config.Save(ConfigurationSaveMode.Modified)
' Force a reload of the changed section. This
' makes the new values available for reading.
ConfigurationManager.RefreshSection( _
sectionName)
End If
Catch e As ConfigurationErrorsException
Console.WriteLine("[Exception error: {0}]", _
e.ToString())
End Try
' Set console properties using values
' stored in the configuration file.
Console.BackgroundColor = _
currentSection.ConsoleElement.BackgroundColor
Console.ForegroundColor = _
currentSection.ConsoleElement.ForegroundColor
' Apply the changes.
Console.Clear()
' Display feedback.
Console.WriteLine()
Console.WriteLine( _
"Using OpenExeConfiguration(userLevel).")
Console.WriteLine( _
"Configuration file is: {0}", config.FilePath)
End Sub
Comentarios
Las aplicaciones cliente usan una configuración global que se aplica a todos los usuarios, configuraciones independientes que se aplican a usuarios individuales y configuraciones que se aplican a los usuarios móviles. El userLevel
parámetro determina la ubicación del archivo de configuración que se abre indicando si no tiene ningún nivel de usuario (el archivo de configuración está en el mismo directorio que la aplicación) o tiene un nivel por usuario (el archivo de configuración se encuentra en una ruta de acceso de configuración de la aplicación determinada por el nivel de usuario).
Especifique la configuración que se va a obtener pasando uno de los siguientes valores para userLevel
:
Para obtener el Configuration objeto que se aplica a todos los usuarios, establezca en
userLevel
None.Para obtener el objeto local Configuration que se aplica al usuario actual, establezca en
userLevel
PerUserRoamingAndLocal.Para obtener el objeto móvil Configuration que se aplica al usuario actual, establezca en
userLevel
PerUserRoaming.Nota
Para obtener el Configuration objeto de un recurso, el código debe tener permisos de lectura en todos los archivos de configuración de los que hereda la configuración. Para actualizar un archivo de configuración, el código también debe tener permisos de escritura para el archivo de configuración y el directorio en el que existe.
Consulte también
Se aplica a
OpenExeConfiguration(String)
- Source:
- ConfigurationManager.cs
- Source:
- ConfigurationManager.cs
- Source:
- ConfigurationManager.cs
Abre el archivo de configuración de cliente especificado como un objeto Configuration.
public:
static System::Configuration::Configuration ^ OpenExeConfiguration(System::String ^ exePath);
public static System.Configuration.Configuration OpenExeConfiguration (string exePath);
static member OpenExeConfiguration : string -> System.Configuration.Configuration
Public Shared Function OpenExeConfiguration (exePath As String) As Configuration
Parámetros
- exePath
- String
Ruta de acceso del archivo ejecutable (exe).
Devoluciones
Archivo de configuración especificado.
Excepciones
No se pudo cargar un archivo de configuración.
Ejemplos
En el ejemplo de código siguiente, se muestra cómo se utiliza el método OpenExeConfiguration.
// Get the application configuration file.
// This function uses the
// OpenExeConfiguration(string)method
// to get the application configuration file.
// It also creates a custom ConsoleSection and
// sets its ConsoleElement BackgroundColor and
// ForegroundColor properties to black and white
// respectively. Then it uses these properties to
// set the console colors.
public static void GetAppConfiguration()
{
// Get the application path needed to obtain
// the application configuration file.
#if DEBUG
string applicationName =
Environment.GetCommandLineArgs()[0];
#else
string applicationName =
Environment.GetCommandLineArgs()[0]+ ".exe";
#endif
string exePath = System.IO.Path.Combine(
Environment.CurrentDirectory, applicationName);
// Get the configuration file. The file name has
// this format appname.exe.config.
System.Configuration.Configuration config =
ConfigurationManager.OpenExeConfiguration(exePath);
try
{
// Create a custom configuration section
// having the same name that is used in the
// roaming configuration file.
// This is because the configuration section
// can be overridden by lower-level
// configuration files.
// See the GetRoamingConfiguration() function in
// this example.
string sectionName = "consoleSection";
ConsoleSection customSection = new ConsoleSection();
if (config.Sections[sectionName] == null)
{
// Create a custom section if it does
// not exist yet.
// Store console settings.
customSection.ConsoleElement.BackgroundColor =
ConsoleColor.Black;
customSection.ConsoleElement.ForegroundColor =
ConsoleColor.White;
// Add configuration information to the
// configuration file.
config.Sections.Add(sectionName, customSection);
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 values
// stored in the configuration file.
customSection =
(ConsoleSection)config.GetSection(sectionName);
Console.BackgroundColor =
customSection.ConsoleElement.BackgroundColor;
Console.ForegroundColor =
customSection.ConsoleElement.ForegroundColor;
// Apply the changes.
Console.Clear();
}
catch (ConfigurationErrorsException e)
{
Console.WriteLine("[Error exception: {0}]",
e.ToString());
}
// Display feedback.
Console.WriteLine();
Console.WriteLine("Using OpenExeConfiguration(string).");
// Display the current configuration file path.
Console.WriteLine("Configuration file is: {0}",
config.FilePath);
}
' Get the application configuration file.
' This function uses the
' OpenExeConfiguration(string)method
' to get the application configuration file.
' It also creates a custom ConsoleSection and
' sets its ConsoleElement BackgroundColor and
' ForegroundColor properties to black and white
' respectively. Then it uses these properties to
' set the console colors.
Public Shared Sub GetAppConfiguration()
' Get the application path needed to obtain
' the application configuration file.
#If DEBUG Then
Dim applicationName As String = _
Environment.GetCommandLineArgs()(0)
#Else
Dim applicationName As String = _
Environment.GetCommandLineArgs()(0) + ".exe"
#End If
Dim exePath As String = _
System.IO.Path.Combine( _
Environment.CurrentDirectory, applicationName)
' Get the configuration file. The file name has
' this format appname.exe.config.
Dim config As System.Configuration.Configuration = _
ConfigurationManager.OpenExeConfiguration(exePath)
Try
' Create a custom configuration section
' having the same name that is used in the
' roaming configuration file.
' This is because the configuration section
' can be overridden by lower-level
' configuration files.
' See the GetRoamingConfiguration() function in
' this example.
Dim sectionName As String = "consoleSection"
Dim customSection As New ConsoleSection()
If config.Sections(sectionName) Is Nothing Then
' Create a custom section if it does
' not exist yet.
' Store console settings.
customSection.ConsoleElement. _
BackgroundColor = ConsoleColor.Black
customSection.ConsoleElement. _
ForegroundColor = ConsoleColor.White
' Add configuration information to the
' configuration file.
config.Sections.Add(sectionName, _
customSection)
config.Save(ConfigurationSaveMode.Modified)
' Force a reload of the changed section.
' This makes the new values available
' for reading.
ConfigurationManager.RefreshSection( _
sectionName)
End If
' Set console properties using values
' stored in the configuration file.
customSection = DirectCast( _
config.GetSection(sectionName), _
ConsoleSection)
Console.BackgroundColor = _
customSection.ConsoleElement.BackgroundColor
Console.ForegroundColor = _
customSection.ConsoleElement.ForegroundColor
' Apply the changes.
Console.Clear()
Catch e As ConfigurationErrorsException
Console.WriteLine("[Error exception: {0}]", _
e.ToString())
End Try
' Display feedback.
Console.WriteLine()
Console.WriteLine( _
"Using OpenExeConfiguration(string).")
' Display the current configuration file path.
Console.WriteLine( _
"Configuration file is: {0}", config.FilePath)
End Sub
Comentarios
Llamar a esta sobrecarga de método equivale a llamar a la OpenMappedExeConfiguration(ExeConfigurationFileMap, ConfigurationUserLevel, Boolean) sobrecarga con el preLoad
parámetro establecido en false
.