Обход файла .config в exe или веб-приложении - PullRequest
0 голосов
/ 01 июля 2011

Я пишу библиотеку, которая будет использоваться в настольных и веб-приложениях.Необходимо пройти через группы разделов в файле .config.Я предполагаю, что мне понадобится экземпляр System.Configuration.Configuration, чтобы сделать это.Есть ли способ сделать это, который работает в настольных и веб-приложениях?

Ответы [ 2 ]

0 голосов
/ 05 июля 2011

У меня получилось что-то вроде этого:

static Configuration OpenConfiguration() {
    if (HttpContext.Current != null)
        return WebConfigurationManager.OpenWebConfiguration(null);
    return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
}

static IEnumerable<ConfigurationSectionGroup> GetConfigSectionGroups() {
    var config = OpenConfiguration();
    var stack = new Stack<ConfigurationSectionGroup>();
    stack.Push(config.RootSectionGroup);
    while (stack.Count > 0) {
        var group = stack.Pop();
        yield return group;
        foreach (ConfigurationSectionGroup subGroup in group.SectionGroups) {
            stack.Push(subGroup);
        }
    }
}
0 голосов
/ 01 июля 2011

Я бы использовал WebConfigurationManager / ConfigurationManager для чтения определенных разделов конфигурации и возврата объекта ConfigurationSection.

...