Custom app.config Controlador de sección de configuración

¿Cuál es la forma correcta de recoger la lista de “páginas” a través de una clase que hereda de System.Configuration.Section si utilicé un app.config como este?

   

Primero agrega una propiedad en la clase que extiende la Sección:

 [ConfigurationProperty("pages", IsDefaultCollection = false)] [ConfigurationCollection(typeof(PageCollection), AddItemName = "add")] public PageCollection Pages { get { return (PageCollection) this["pages"]; } } 

Entonces necesitas hacer una clase PageCollection. Todos los ejemplos que he visto son bastante idénticos, así que simplemente copie este y cambie el nombre de “NamedService” por “Página”.

Finalmente agregue una clase que extienda ObjectConfigurationElement:

 public class PageElement : ObjectConfigurationElement { [ConfigurationProperty("title", IsRequired = true)] public string Title { get { return (string) this["title"]; } set { this["title"] = value; } } [ConfigurationProperty("url", IsRequired = true)] public string Url { get { return (string) this["url"]; } set { this["url"] = value; } } } 

Aquí hay algunos archivos de una implementación de ejemplo:

  • Configuración de muestra
  • Colección y clases de elementos
  • Clase de sección de configuración

También debe consultar la serie de tres partes de Jon Rista sobre la configuración de .NET 2.0 en CodeProject.

  • Desentrañando los misterios de la configuración de .NET 2.0
  • Descifrando los misterios de la configuración de .NET 2.0
  • Rompiendo los misterios de la configuración de .NET 2.0

Muy recomendado, bien escrito y extremadamente útil.

Además, si se encuentra creando secciones de configuración con frecuencia, está el Diseñador de Sección de Configuración , un diseñador de Lenguaje Específico de Dominio gráfico para diseñar secciones de configuración.