Ayuda con el uso de ConfigurationSection para leer correctamente desde un archivo de configuración

StackOverflow https://stackoverflow.com/questions/254976

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>
¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top