Sunteți pe pagina 1din 5

ConfigurationManager

Publicado: octubre de 2016

Proporciona acceso a los archivos de configuracin para las aplicaciones cliente. Esta clase no puede
heredarse.

Espacio de nombres: System.Configuration


System.Configuration.ConfigurationManager

Sintaxis
Public NotInheritable Class ConfigurationManager

Propiedades
Nombre Descripcin
AppSettings Obtiene los datos AppSettingsSection para la configuracin predeterminada de la
aplicacin actual.
ConnectionStrings Obtiene los datos ConnectionStringsSection para la configuracin predeterminada
de la aplicacin actual.

Mtodos
Nombre Descripcin
GetSection(String) Recupera una seccin de configuracin
especificada para la configuracin
predeterminada de la aplicacin actual.
OpenExeConfiguration(ConfigurationUserLevel) Abre el archivo de configuracin para la
aplicacin actual como un objeto
Configuration.
OpenExeConfiguration(String) Abre el archivo de configuracin de cliente
especificado como un objeto
Configuration.
OpenMachineConfiguration() Abre el archivo de configuracin del
equipo como un objeto Configuration en el
equipo actual.
OpenMappedExeConfiguration(ExeConfigurationFileMap, Abre el archivo de configuracin de cliente
ConfigurationUserLevel) especificado como un objeto Configuration
que utiliza la asignacin de archivos y el
nivel de usuario indicados.
OpenMappedExeConfiguration(ExeConfigurationFileMap, Abre el archivo de configuracin de cliente
ConfigurationUserLevel, Boolean) especificado como un objeto Configuration
que usa la asignacin de archivos, nivel de
usuario y opcin de carga previa
especificados.
OpenMappedMachineConfiguration(ConfigurationFileMap) Abre el archivo de configuracin del
equipo como un objeto Configuration que
utiliza la asignacin de archivos
especificada.
RefreshSection(String) Actualiza la seccin con nombre para que
se vuelva a leer desde el disco la prxima
vez que se recupere.

Comentarios
La clase T: System.Configuration.ConfigurationManager permite acceder a la informacin de configuracin
de la mquina, la aplicacin y el usuario. Esta clase reemplaza la clase T:
System.Configuration.ConfigurationSettings, que est obsoleta.

Para utilizar la clase T: System.Configuration.ConfigurationManager, su proyecto debe hacer referencia al


ensamblado System.Configuration.

Puede utilizar los tipos incorporados de N: System.Configuration o derivar de ellos para manejar la
informacin de configuracin. Al utilizar estos tipos, puede trabajar directamente con la informacin de
configuracin y puede ampliar los archivos de configuracin para incluir informacin personalizada.

La clase T: System.Configuration.ConfigurationManager incluye miembros que le permiten realizar las


siguientes tareas:

Leer una seccin de un archivo de configuracin. Para tener acceso a informacin de


configuracin, llame al mtodo M: System.Configuration.ConfigurationManager.GetSection
(System.String). Para algunas secciones como appSettings y connectionStrings, utilice las clases
P: System.Configuration.ConfigurationManager.AppSettings y P:
System.Configuration.ConfigurationManager.ConnectionStrings. Estos miembros realizan
operaciones de slo lectura, utilizan una nica instancia en cach de la configuracin y son
multithread.
Leer y escribir archivos de configuracin como un todo. Su aplicacin puede leer y escribir
configuraciones de configuracin en cualquier nivel, para s mismo o para otras aplicaciones u
ordenadores, local o remotamente. Utilice uno de los mtodos proporcionados por la clase T:
System.Configuration.ConfigurationManager para abrir un archivo de configuracin como
SampleApp.exe.config. Estos mtodos devuelven un objeto T: System.Configuration.Configuration
que, a su vez, expone mtodos y propiedades que puede utilizar para trabajar con los archivos de
configuracin asociados. Los mtodos realizan operaciones de lectura o escritura y crean los datos
de configuracin cada vez que se escribe un archivo.
Soporta tareas de configuracin. Los siguientes tipos se utilizan para soportar varias tareas de
configuracin:
o SectionInformation
o PropertyInformation
o PropertyInformationCollection
o ElementInformation
o ContextInformation
o ConfigurationSectionGroup
o ConfigurationSectionGroupCollection

Adems de trabajar con la informacin de configuracin existente, puede crear y trabajar con
elementos de configuracin personalizados ampliando los tipos de configuracin incorporados,
como
T: System.Configuration.ConfigurationElement,
T: System.Configuration.ConfigurationElementCollection,
T: System.Configuration .ConfigurationProperty y
T: System.Configuration.ConfigurationSection. Para ver un ejemplo de cmo extender un tipo de
configuracin incorporado mediante programacin, vea
T: System.Configuration.ConfigurationSection. Para obtener un ejemplo de cmo extender un tipo
de configuracin incorporado que utiliza el modelo basado en atributos, vea
T: System.Configuration.ConfigurationElement

Notas para implementadores:


La clase T: System.Configuration.Configuration permite el acceso programtico para la edicin de archivos
de configuracin. Utilice uno de los mtodos Open proporcionados por T:
System.Configuration.ConfigurationManager. Estos mtodos devuelven un objeto T:
System.Configuration.Configuration, que a su vez proporciona los mtodos y propiedades necesarios para
manejar los archivos de configuracin subyacentes. Puede acceder a estos archivos para leer o escribir .

Para leer los archivos de configuracin, utilice M: System.Configuration.Configuration.GetSection


(System.String) o M: System.Configuration.Configuration.GetSectionGroup (System.String) para leer la
informacin de configuracin. El usuario o proceso que lee debe tener los siguientes permisos:

Permiso de lectura en el archivo de configuracin en el nivel de jerarqua de configuracin actual.


Permisos de lectura en todos los archivos de configuracin padre.

Si su aplicacin necesita acceso de slo lectura a su propia configuracin, le recomendamos que utilice el
mtodo M: System.Configuration.ConfigurationManager.GetSection (System.String). Este mtodo
proporciona acceso a los valores de configuracin en cach para la aplicacin actual, que tiene un mejor
rendimiento que la clase T: System.Configuration.Configuration.

Para escribir en los archivos de configuracin, utilice uno de los mtodos Overload:
System.Configuration.Configuration.Save. El usuario o proceso que escribe debe tener los permisos
siguientes:
Permiso de escritura en el archivo de configuracin y el directorio en el nivel de jerarqua de
configuracin actual.
Leer permisos en todos los archivos de configuracin.

Ejemplos
El primer ejemplo muestra una aplicacin de consola simple que lee la configuracin de la aplicacin,
aade una nueva configuracin y actualiza una configuracin existente.

VB
Imports System.Configuration
Module Module1

Sub Main()
ReadAllSettings()
ReadSetting("Setting1")
ReadSetting("NotValid")
AddUpdateAppSettings("NewSetting", "May 7, 2014")
AddUpdateAppSettings("Setting1", "May 8, 2014")
ReadAllSettings()
End Sub

Sub ReadAllSettings()
Try
Dim appSettings = ConfigurationManager.AppSettings

If appSettings.Count = 0 Then
Console.WriteLine("AppSettings is empty.")
Else
For Each key As String In appSettings.AllKeys
Console.WriteLine("Key: {0} Value: {1}", key, appSettings(key))
Next
End If
Catch e As ConfigurationErrorsException
Console.WriteLine("Error reading app settings")
End Try
End Sub

Sub ReadSetting(key As String)


Try
Dim appSettings = ConfigurationManager.AppSettings
Dim result As String = appSettings(key)
If IsNothing(result) Then
result = "Not found"
End If
Console.WriteLine(result)
Catch e As ConfigurationErrorsException
Console.WriteLine("Error reading app settings")
End Try
End Sub

Sub AddUpdateAppSettings(key As String, value As String)


Try
Dim configFile =
ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
Dim settings = configFile.AppSettings.Settings
If IsNothing(settings(key)) Then
settings.Add(key, value)
Else
settings(key).Value = value
End If
configFile.Save(ConfigurationSaveMode.Modified)

ConfigurationManager.RefreshSection(configFile.AppSettings.SectionInformation.Name)
Catch e As ConfigurationErrorsException
Console.WriteLine("Error writing app settings")
End Try
End Sub

End Module

The previous example assumes your project has an App.config file as shown below.

XML
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<appSettings>
<add key="Setting1" value="May 5, 2014"/>
<add key="Setting2" value="May 6, 2014"/>
</appSettings>
</configuration>

The following example shows how to use a connection string to read data from a database.

VB
Imports System.Configuration
Imports System.Data.SqlClient
Module Module1

Sub Main()
ReadProducts()
End Sub

Sub ReadProducts()
Dim connectionString =
ConfigurationManager.ConnectionStrings("WingtipToys").ConnectionString
Dim queryString = "SELECT Id, ProductName FROM dbo.Products;"
Using connection As New SqlConnection(connectionString)
Dim command = New SqlCommand(queryString, connection)
connection.Open()

Using reader As SqlDataReader = command.ExecuteReader()


While reader.Read()
Console.WriteLine(String.Format("{0}, {1}", reader(0), reader(1)))
End While
End Using
End Using
End Sub

End Module

The previous example assumes your project has an App.config as shown below.

XML
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<connectionStrings>
<add name="WingtipToys" connectionString="Data Source=(LocalDB)\v11.0;Initial
Catalog=WingtipToys;Integrated Security=True;Pooling=False" />
</connectionStrings>
</configuration>

S-ar putea să vă placă și