C# Windows服务的配置文件

3

我有这个配置文件:

   <?xml version="1.0" encoding="utf-8"?>
<configuration>
    <appSettings>
        <add key="AuxAppStg0" value="5 iunie 2013 19:22:49" />
        <add key="AuxAppStg1" value="5 iunie 2013 00:00:00" />
        <add key="AppStg2" value="5 iunie 2013 19:23:04" />
    </appSettings>
</configuration>

我想使用以下代码来解析它:

 // Get the configuration file.
        System.Configuration.Configuration config =
            ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);

        // Get the appSettings section.
        System.Configuration.AppSettingsSection appSettings =
            (System.Configuration.AppSettingsSection)config.GetSection("appSettings");



        foreach (KeyValueConfigurationElement i in appSettings.Settings)
        {

            Console.WriteLine("Key: {0} Value: {1}", i.Key, i.Value);
        }

        if (appSettings.Settings.Count != 0)
        {
            foreach (string key in appSettings.Settings.AllKeys)
            {
                string value = appSettings.Settings[key].Value;
                Console.WriteLine("Key: {0} Value: {1}", key, value);
            }
        }
        else
        {
            Console.WriteLine("The appSettings section is empty. Write first.");
        }

我得到的全部内容是:appSettings节为空。写入第一个。 我在这里找到了它。我做错了什么吗?我想为C# Windows服务创建一个配置文件,在启动时读取,这是一个好方法吗?还有其他更好的方法吗?


你的.config文件叫什么名字?它应该是服务可执行文件的名称+ .config,因此MyWindowsService.exe应该是MyWindowsService.exe.config。它还应该在与服务可执行文件相同的目录中。您还需要重新启动Windows服务才能使其获取对文件的更改。 - vcsjones
6
你为什么不使用ConfigurationManager.AppSettings呢? - matt-dot-net
@matt-dot-net 很棒,加一分。 - vcsjones
你知道他们怎么说的吧.. @matt-dot-net: 真实故事! - AlexandruC
1个回答

5

首先,您需要将System.configuration引用导入到您的项目中。

然后您可以使用类似以下代码:

private void ParseAppSettings() {
    string value = string.Empty;
    foreach (string key in System.Configuration.ConfigurationManager.AppSettings.AllKeys)
    {
        value = System.Configuration.ConfigurationManager.AppSettings[key];
        Console.WriteLine("Key: {0} Value: {1}", key, value);
    } 
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接