【问题标题】:How to use application config file in C#?如何在 C# 中使用应用程序配置文件?
【发布时间】:2010-06-08 17:48:11
【问题描述】:

我正在尝试在我的 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.");
    }

谁能提示一下为什么这不起作用? (我收到错误消息。)

谢谢!!

坏熊猫

【问题讨论】:

  • 对大家的歧义感到抱歉。当我提到错误消息时,我的意思是 console.writeline 语句说“配置文件未读入”,我为造成的混乱道歉。

标签: c# file configuration singleton


【解决方案1】:

您不能从 app.config 更改名称并期望 ConfigurationManager 在不提供更多信息的情况下找到它。将 myProjectName.config 的名称改回 app.config,重新构建,您将在 bin 文件夹中看到一个名为 myProjectName.exe.config 的文件。那么您对ConfigurationManager.AppSettings 的调用应该可以正常工作。

【讨论】:

    【解决方案2】:
    【解决方案3】:

    首先,使用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 语句中抛出了错误消息,但谢谢你的回答。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-03-23
    • 1970-01-01
    • 2017-10-05
    • 1970-01-01
    • 2011-02-25
    • 2011-09-14
    • 2019-07-20
    相关资源
    最近更新 更多