2010-06-08 91 views
7

我想在我的C#控制台应用程序中使用配置文件。我通过新建 - >应用程序配置文件创建了该文件,并将其命名为myProjectName.config。我的配置文件看起来像这样:如何在C#中使用应用程序配置文件?

<?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

+0

什么错误信息? – 2010-06-08 17:51:08

+0

对不起,每个人都有歧义。当我提到一条错误消息时,我的意思是说'配置文件没有读入'的console.writeline语句,我对此感到抱歉。 – badpanda 2010-06-08 18:47:28

回答

8

不能从app.config中的名称更改,并期望ConfigurationManager发现它没有提供更多信息。将myProjectName.config的名称更改回app.config,重建,您将在名为myProjectName.exe.config的bin文件夹中看到一个文件。那么你的电话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; 
    } 
+0

我确实说过它是在if语句中抛出错误信息,但是感谢你的回答。 – badpanda 2010-06-08 18:43:45

相关问题