4

我正在尝试创建类以使用 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>
4

2 回答 2

5

这里的神奇之处在于使用 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

于 2008-10-31T21:36:11.777 回答
3

应该可以帮助您弄清楚如何正确创建配置部分,然后从中读取。

于 2008-10-31T21:27:58.143 回答