Ajuda com o uso de ConfigurationSection para ler corretamente a partir de um arquivo de configuração

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

Pergunta

Eu estou tentando criar classes para ler do meu arquivo de configuração usando ConfigurationSection e ConfigurationElementCollection, mas estou tendo um momento difícil.

Como um exemplo da configuração:


<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>
Foi útil?

Solução

A magia aqui é usar as classes ConfigurationSection.

Essas classes só precisa conter propriedades que correspondem a 1: 1 com o seu esquema de configuração. Você pode usar atributos para deixar .NET saber quais propriedades corresponder quais elementos.

Assim, você pode criar PAYMENTMETHOD e tê-lo herdar de ConfigurationSection

E você criaria SubPaymentMethod e tê-lo herdar de ConfigurationElement.

PAYMENTMETHOD teria um ConfigurationElementCollection de SubPaymentMethods nele como uma propriedade, é assim que você conectar-se os tipos complexos juntos.

Você não precisa escrever o seu próprio código de análise XML.

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

}

etc ...

Veja aqui como criar os ConfigurationElementCollections assim você pode ter tipos aninhados:

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

Outras dicas

Este deve ajudá-lo a descobrir como criar seções de configuração corretamente, e, em seguida, lê-los.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top