Aplikacja niestandardowa.Config Config section Handler

Jaki jest prawidłowy sposób pobierania listy "stron" za pomocą klasy dziedziczącej z systemu.Konfiguracja.Sekcja jeśli używałem aplikacji.config jak ten?

<?xml version="1.0" encoding="utf-8" ?>
<configuration>

  <configSections>
    <section name="XrbSettings" type="Xrb.UI.XrbSettings,Xrb.UI" />
  </configSections>

  <XrbSettings>
    <pages>
      <add title="Google" url="http://www.google.com" />
      <add title="Yahoo" url="http://www.yahoo.com" />
    </pages>
  </XrbSettings>

</configuration>
Author: Tshepang, 2009-04-17

3 answers

Najpierw dodajesz Właściwość klasy, która rozszerza sekcję:

[ConfigurationProperty("pages", IsDefaultCollection = false)]
[ConfigurationCollection(typeof(PageCollection), AddItemName = "add")]
public PageCollection Pages {
    get {
        return (PageCollection) this["pages"];
    }
}

Następnie musisz utworzyć klasę PageCollection. Wszystkie przykłady, które widziałem, są prawie identyczne, więc po prostu skopiuj Ten i zmień nazwę "NamedService"na " Page".

Na koniec dodaj klasę rozszerzającą ObjectConfigurationElement:

public class PageElement : ObjectConfigurationElement {
    [ConfigurationProperty("title", IsRequired = true)]
    public string Title {
        get {
            return (string) this["title"];
        }
        set {
            this["title"] = value;
        }
    }

    [ConfigurationProperty("url", IsRequired = true)]
    public string Url {
        get {
            return (string) this["url"];
        }
        set {
            this["url"] = value;
        }
    }
}

Oto kilka plików z przykładowej implementacji:

 26
Author: Luke Quinane,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-21 07:18:20

Powinieneś również sprawdzić trzyczęściową serię Jona Risty na konfiguracji. NET 2.0 w CodeProject.

Gorąco polecam, dobrze napisane i niezwykle pomocne!

 9
Author: marc_s,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-13 09:42:37

Ponadto, jeśli często tworzysz sekcje konfiguracyjne, istnieje Configuration section Designer , graficzny projektant języków specyficznych dla domeny do projektowania sekcji konfiguracyjnych.

 4
Author: John Saunders,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-24 10:21:56