Aide sur l'utilisation de ConfigurationSection pour lire correctement à partir d'un fichier de configuration

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

Question

J'essaie de créer des classes à lire à partir de mon fichier de configuration à l'aide de ConfigurationSection et ConfigurationElementCollection, mais j'ai des difficultés.

À titre d'exemple de la configuration:


<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>
Était-ce utile?

La solution

La magie consiste à utiliser les classes ConfigurationSection.

Ces classes doivent simplement contenir des propriétés correspondant à 1: 1 avec votre schéma de configuration. Vous utilisez des attributs pour indiquer à .NET quelles propriétés correspondent à quels éléments.

Vous pouvez donc créer PaymentMethod et l'hériter de ConfigurationSection

Et vous créeriez SubPaymentMethod et l'hériteriez de ConfigurationElement.

PaymentMethod aurait comme propriété une ConfigurationElementCollection of SubPaymentMethods, c’est ainsi que vous relierez ensemble les types complexes.

Vous n'avez pas besoin d'écrire votre propre code d'analyse XML.

public class PaymentSection : ConfigurationSection
{
   // Simple One
   [ConfigurationProperty("name")]]
   public String name
   {
      get { return this["name"]; }
      set { this["name"] = value; }
   }

}

etc ...

Voyez ici comment créer les ConfigurationElementCollections afin d’avoir des types imbriqués:

http://blogs.neudesic.com /blogs/jason_jung/archive/2006/08/08/208.aspx

Autres conseils

Ceci devrait vous aider à comprendre comment créer des sections de configuration. correctement, puis lisez-les.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top