Profil de GustavoGustavo BonanseaBlogListes Outils Aide
16 septembre

Agregar secciones de configuración personalizadas en el web.config

Las aplicaciones en .Net cuentan con los conocidos archivos de configuración web.config y app.config, que nos sirven para definir parte del comportamiento de nuestras aplicaciones, como por ejemplo el tipo de autenticación de usuarios a utilizar, cómo manejar los errores (redireccionarlos a una página en especial), opciones de globalización, etc. (Para ver el esquema completo de configuración de Asp.Net: ASP.NET Settings Schema)

Además de las secciones ya definidas podemos agregar opciones de configuración definidas por nosotros para guardar valores propios de la aplicación. La forma más común es utilizar la sección appSettings y agregarle un nodo add con un par nombre-valor.

<appSettings>

        <add key="cnnString" value="Password=pwd;Persist Security Info=True;User ID=sa;Initial Catalog= DatabaseServer;Data Source= Database" />

</appSettings>

 

En el ejemplo anterior podemos ver que se agregó un nodo cnnString que tiene por valor la cadena de conexión con la base de datos. De esta forma con el siguiente código podermos obtener el valor y utilizarlo dentro de nuestro programa, con la posibilidad de que se modifique sin necesidad de recompilar:

 

Dim cnnString As String

'obtengo la cadena de conexion

cnnString = ConfigurationSettings.AppSettings("cnnString")

 

Y así podemos agregar todos los elementos add que creamos necesarios. Pero que pasa si necesitamos generar configuraciones más avanzadas. Por ejemplo, supongamos que deseamos configurar un componente de logging y deseamos que toda la configuración del mismo se encuentre contenida en una sola sección y no mezclada con las demás configuraciones del appSettings. Para ellos debemos crear una sección personalizada dentro del web.config:

 

<configuration>

      <configSections>

            <section name="logging" type="System.Configuration.NameValueSectionHandler,System,Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"></section>

      </configSections>

........ Demás nodos

</configuration>

 

En el código anterior definimos una sección personalizada denominada logging que es del tipo System.Configuration.NameValueSectionHandler. Nos sirve para manejar secciones como la appSettings del tipo nombre-valor. Los posibles tipos de handlers para las secciones son los siguientes:

 

Clase

Descripción

DictionarySectionHandler

Lee la información de configuración del par de clave y valor de una sección de configuración.

IgnoreSectionHandler

Proporciona una definición de controlador de sección para las secciones de configuración que leen y controlan otros sistemas distintos de System.Configuration.

NameValueSectionHandler

Proporciona información de configuración del par de nombre y valor de la sección de configuración.

SingleTagSectionHandler

Sección simple

 

Luego en el archivo web.config detallamos la sección definida anteriormente:

 

<logging>

      <add key="LogColumnSize" value="20" />

      <!-- Services -->

      <add key="webService" value="true" />

      <add key="sitePages" value="true" />

      <add key="Exceptions" value="false" />

      <add key="webServiceExceptions" value="true" />

</logging>

 

Para obtener los valores de la nueva sección utilizaremos el siguiente código:

 

'declaro una variable que va a manejar la seccion de configuracion

Dim ServiceLoggingConfig As NameValueCollection

Dim value As String

 

'obtengo el handler para la seccion de configuracion

ServiceLoggingConfig = ConfigurationSettings.GetConfig("logging")

'obtengo el valor guardado en la clave ‘webService’ de la seccion ‘logging’

value = ServiceLoggingConfig("webService")

 

De esta forma podemos administrar todas las secciones que necesitemos de una forma simple y utilizando todos los servicios de configuración que vienen incorporados en el framework.

 
 
GB

Commentaires (2)

Veuillez patienter...
Le commentaire entré est trop long. Raccourcissez-le.
Vous n'avez rien entré. Réessayez.
Il est actuellement impossible d'ajouter votre commentaire. Réessayez plus tard.
Pour ajouter un commentaire, tu dois avoir l'autorisation de tes parents. Demander l'autorisation
Tes parents ont désactivé les commentaires.
Il est actuellement impossible de supprimer votre commentaire. Réessayez plus tard.
Vous avez dépassé le nombre maximal de commentaires qu'il est possible d'envoyer le même jour. Réessayez dans 24 heures.
Votre compte a pu laisser les commentaires désactivés parce que nos systèmes indiquent que vous risquez d'arroser d'autres utilisateurs de messages. Si vous pensez que votre compte a été désactivé par erreur, contactez l'assistance en ligne de Windows Live.
Effectuez la vérification de sécurité ci-dessous pour finaliser l'envoi de votre commentaire.
Les caractères entrés pour la vérification de sécurité doivent correspondre à ceux de l'image ou du fichier audio.

Pour ajouter un commentaire, connectez-vous avec votre identifiant Windows Live ID (si vous utilisez Messenger ou Xbox LIVE, vous avez un identifiant Windows Live ID). Connectez-vous


Vous n'avez pas d'identifiant Windows Live ID ? Inscrivez-vous

Image de Anonyme
Gustavo_Bonansea a écrit :
Si, seguro. El Appblock es mucho más flexible. Pero yo necesitaba algo mucho más simple porque estaba un poco ahorcado con el tiempo, así que se me ocurrió que si infragistics lo podía hacer porqué yo no (léase: "se lo copié a los de infragistics"), jejejejeje.
19 Sept.
Image de Anonyme
El_Bruno_ a écrit :
jejeje ... a esta no la conocia :D
chetos los diccionarios, pero si aun se necesita mas complejidad yo usaria el app block de configuracion ... http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/config.asp


Saludos
16 Sept.

Rétroliens

L'URL de rétrolien de ce billet est :
http://misopiniones.spaces.live.com/blog/cns!2737DC89A4AAB26B!393.trak
Blogs Web qui font référence à ce billet
  • Aucune