miércoles, 6 de enero de 2010

Truco: Como usar cualquier clase en un Setting

Los Settings son una manera extremadamente rápida y sencilla de incluir parámetros que puedan ser configurados por el usuario (además de incluir constantes si son Settings de aplicación).

El problema viene cuando uno quiere guardar un objeto propio en los Settings. Después de todo es mucho mas sencillo guardar en un Setting un objeto de una clase nuestra que tener que descomponer dicha clase en sus atributos más relevantes y guardar estos en los Setting.

Inicialmente uno cree que pude salir adelante con la opción Browse:


Opción de Browse en los Settings


Enseguida nos daremos cuenta de que solo funciona con algunos tipos incluidos en el Framework y con ciertos tipos declarados en otros Assemblies diferentes al actual con lo que no podremos incluir ningún tipo declarado en el proyecto que estemos desarrollando (un ejecutable presumiblemente puesto que le estamos añadiendo Settings).

Pues bien, existe una manera de añadir los tipos deseados retocando un poco lo que el Visual Studio genera (está probado con VS2005 y VS2008). Los pasos a seguir son los siguientes:

  • Crearemos una propiedad con el nombre que deseemos y le dejaremos el tipo que sale por defecto.
  • Seleccionaremos la opción de ver todos los ficheros del proyecto en el Solution Explorer

  • Abriremos el fichero Settings.Designer.vb que se encuentra dentro de My Project -> Settings.settings (si es un proyecto WPF no se puede abrir así y hay que abrir directamente el fichero Settings.Designer.vb almacenado en disco).
  • Buscaremos la propiedad que creamos en el primer paso y le pondremos el tipo deseado.
  • Por ultimo abriremos el fichero Settings.settings seleccionando Open With del menú contextual y escogiendo el editor XML y buscaremos la propiedad creada y le cambiaremos el Type por el nombre  completo de nuestro tipo (Namespace.Class) también conocido como Full Qualified Name.

0 comentarios: