2010-06-08 98 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

相關問題