Ayuda con el uso de ConfigurationSection para leer correctamente desde un archivo de configuración
-
05-07-2019 - |
Pregunta
Estoy tratando de crear clases para leer desde mi archivo de configuración usando ConfigurationSection y ConfigurationElementCollection pero estoy teniendo dificultades.
Como ejemplo de la configuración:
<PaymentMethodSettings>
<PaymentMethods>
<PaymentMethod name="blah blah" code="1"/>
<PaymentMethod name="blah blah" code="42"/>
<PaymentMethod name="blah blah" code="43"/>
<Paymentmethod name="Base blah">
<SubPaymentMethod name="blah blah" code="18"/>
<SubPaymentMethod name="blah blah" code="28"/>
<SubPaymentMethod name="blah blah" code="38"/>
</Paymentmethod>
</PaymentMethods>
</PaymentMethodSettings>
Solución
La magia aquí es usar las clases de ConfigurationSection.
Estas clases solo necesitan contener propiedades que coincidan 1: 1 con su esquema de configuración. Utiliza atributos para que .NET sepa qué propiedades coinciden con qué elementos.
Por lo tanto, podría crear PaymentMethod y heredarlo de ConfigurationSection
Y crearía SubPaymentMethod y lo heredaría de ConfigurationElement.
PaymentMethod tendría un ConfigurationElementCollection de SubPaymentMethods como propiedad, así es como se conectan los tipos complejos juntos.
No es necesario que escriba su propio código de análisis XML.
public class PaymentSection : ConfigurationSection
{
// Simple One
[ConfigurationProperty("name")]]
public String name
{
get { return this["name"]; }
set { this["name"] = value; }
}
}
etc ...
Consulte aquí cómo crear los ConfigurationElementCollections para que pueda tener tipos anidados:
http://blogs.neudesic.com /blogs/jason_jung/archive/2006/08/08/208.aspx
Otros consejos
Esto debería ayudarlo a descubrir cómo crear secciones de configuración correctamente, y luego leer de ellos.