www whatwg spec language 3wc .net configuration app-config configsection

.net - whatwg - w3c html standards



Custom app.config Controlador de sección de configuración (3)

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.

¿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?

<?xml version="1.0" encoding="utf-8" ?> <configuration> <configSections> <section name="XrbSettings" type="Xrb.UI.XrbSettings,Xrb.UI" /> </configSections> <XrbSettings> <pages> <add title="Google" url="http://www.google.com" /> <add title="Yahoo" url="http://www.yahoo.com" /> </pages> </XrbSettings> </configuration>


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: