在exe或web应用程序中遍历.config文件

时间:2011-07-01 15:41:16

标签: c# asp.net configuration console-application

我正在编写一个将用于桌面和网络应用程序的库。它需要遍历.config文件中的节组。我假设我需要System.Configuration.Configuration的实例来执行此操作。有没有办法在桌面和网络应用程序中运行?

2 个答案:

答案 0 :(得分:0)

我会使用WebConfigurationManager / ConfigurationManager来阅读特定的配置部分并返回ConfigurationSection个对象。

答案 1 :(得分:0)

我最终得到了类似的东西:

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);
        }
    }
}