如何读取另一个exe的app.config文件 - 作为名称值对

时间:2012-12-06 22:25:29

标签: .net config

要从当前应用程序的app.config中读取AppSettings部分很简单 - 您可以使用ConfigurationManager.AppSettings,它返回一系列您可以阅读的名称/值对。

但是如果你想从另一个应用程序的配置文件中访问这些条目怎么办?

我看到ConfigurationManager有其他方法,比如OpenExeConfiguration,但是当我一直关注这些方法时,我没有看到任何方法迭代AppSetting(或任何部分)作为一系列名称/值对,例如ConfigurationManager.AppSettings。

是否可以读取单独的exe配置文件并轻松迭代(不仅仅是通过个别密钥访问)?

2 个答案:

答案 0 :(得分:0)

应用程序配置文件是XML文件,因此您可以使用LINQ to XML解析它们。这将允许您轻松读取应用程序配置文件并获取您从中选择的任何信息。

答案 1 :(得分:0)

可能有一种更简洁的方法可以做到这一点,但是这样做(显示抓取特定值并构建字典以便您可以迭代)。

    private string collection;
    Dictionary<string, string> settings = new Dictionary<string, string>();
    // using System.Configuration;
    private void LoadOthersConfig(string exepath)
    {
        Configuration config = ConfigurationManager.OpenExeConfiguration(exepath);
        if (config.Sections["appSettings"] != null)
        {
            AppSettingsSection appSettings = (AppSettingsSection)config.GetSection("appSettings");

            collection = appSettings.Settings["collection"].Value;

            foreach (string k in appSettings.Settings.AllKeys)
            {
                settings.Add(k, appSettings.Settings[k].Value);
            }
        }
    }