1

app.config に次のセクション構造を持たせようとしています

<MyConfig>
    <NewsFeeds site="abc">
        <add name="first" />
    </NewsFeeds>
    <NewsFeeds site="zyx">
        <add name="another" />
    </NewsFeeds>
</MyConfig>

MyConfigセクションは既に機能していますが、NewsFeedコレクションをどのようにコーディングする必要があるか、またはこの構造が可能かどうかさえわかりません。現在、これまでに次のクラスがあります。

[ConfigurationCollection(typeof(NewsFeedConfig))]
public class NewsFeedConfigCollection : ConfigurationElementCollection
{
    protected override ConfigurationElement CreateNewElement()
    {
        return new NewsFeedConfig();
    }

    protected override object GetElementKey(ConfigurationElement element)
    {
        return ((NewsFeedConfig)(element)).Name;
    }

    public NewsFeedConfig this[int idx] { get { return (NewsFeedConfig)BaseGet(idx); } }
}

public class NewsFeedConfig : ConfigurationElement
{
    [ConfigurationProperty("name", IsKey = true, IsRequired = true)]
    public string Name
    {
        get { return (string)base["name"]; }
        set { base["name"] = value; }
    }

    [ConfigurationProperty("source", IsRequired = true)]
    public string Source
    {
        get { return (string)base["source"]; }
        set { base["source"] = value; }
    }
}

Siteただし、これにはすべてのニュース フィードが 1 つのニュース フィード コレクションの下にある必要があり、各要素にプロパティを追加して手動で解析する必要があります。それは問題ありませんが、上で定義した XML が機能するような方法でそれを行うことは可能でしょうか?

4

1 に答える 1

0

私はあなたがここであなたの答えを見つけると思います:セクションは設定ファイルごとに一度だけ現れる必要があります!なぜ?

xmlを次のようなものに再構築することをお勧めします。

<MyConfig>
  <NewsFeed site="abc">
    <Feeds>
      <Feed name="first" />
    </Feeds>
  </NewsFeed>
  <NewsFeed site="zyx">
    <Feeds>
      <Feed name="second" />
      <Feed name="third" />
      <Feed name="fourth" />
    </Feeds>
  </NewsFeed>
</MyConfig>
于 2012-07-09T22:18:29.827 に答える