ConfigurationSectionを使用して、構成ファイルから適切に読み取るためのヘルプ

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

質問

ConfigurationSectionおよびConfigurationElementCollectionを使用して構成ファイルから読み取るクラスを作成しようとしていますが、苦労しています。

構成の例として:


<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>
役に立ちましたか?

解決

ここでの魔法は、ConfigurationSectionクラスを使用することです。

これらのクラスには、構成スキーマと1:1で一致するプロパティを含める必要があります。属性を使用して、どのプロパティがどの要素に一致するかを.NETに知らせます。

したがって、PaymentMethodを作成し、ConfigurationSectionから継承させることができます

そして、SubPaymentMethodを作成し、ConfigurationElementから継承します。

PaymentMethodには、プロパティとしてSubPaymentMethodsのConfigurationElementCollectionがあります。これが、複合型を結び付ける方法です。

独自のXML解析コードを記述する必要はありません。

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

}

etc ...

ネストされた型を持つことができるようにConfigurationElementCollectionsを作成する方法については、こちらを参照してください:

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

他のヒント

これは、構成セクションの作成方法を理解するのに役立ちます。正しく、それらから読み取ります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top