如何在C#中使用应用程序配置文件?

7
我将尝试为我的C#控制台应用程序使用配置文件。我通过选择“新建”->“应用程序配置文件”,并将其命名为myProjectName.config,在项目中创建了该文件。我的配置文件如下所示:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="SSDirectory" value="D:\Documents and Settings\****\MyDocuments\****" />
</appSettings>
</configuration>

访问它的代码如下所示:
private FileValidateUtil()
    {
        sSDirFilePath = ConfigurationSettings.AppSettings["SSDirectory"];
        if (sSDirFilePath == null)
            Console.WriteLine("config file not reading in.");
    }

有人能给我一个提示,为什么这不起作用吗?(我收到了错误信息。)

谢谢!!

badPanda


对于那个模糊不清的问题,我向大家道歉。当我提到错误信息时,我指的是控制台输出的语句:“配置文件未读取”。对于造成的困惑,我深感抱歉。 - badpanda
3个回答

8

你不能仅仅更改app.config文件的名称,然后期望ConfigurationManager能够找到它并正常工作。你需要提供更多信息。将myProjectName.config文件名改回app.config,重新构建,然后你会在bin文件夹中看到一个名为myProjectName.exe.config的文件。这时,调用ConfigurationManager.AppSettings应该可以正常工作。


2

首先,使用ConfigurationManager而不是ConfigurationSettings

其次,不要只说“不起作用”,这并没有提供有用的信息,请告诉我们你看到了什么。它是否编译?它是否在运行时抛出异常?你的电脑是否开始冒烟并散发着熔化塑料的气味?

尝试这个:

    public string GetSSDirectory()
    {
        string sSDirFilePath = string.Empty;

        if (!ConfigurationManager.AppSettings.AllKeys.Contains("SSDirectory"))
        {
            Console.WriteLine("AppSettings does not contain key  \"SSDirectory\"");
        }
        else
        {
            sSDirFilePath = ConfigurationManager.AppSettings["SSDirectory"];
            Console.WriteLine("AppSettings.SSDirectory = \"" + sSDirFilePath + "\"");
        }

        return sSDirFilePath;
    }

我确实说过它在if语句中抛出错误消息,但还是谢谢你的回答。 - badpanda


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