2010-06-08 23 views
7

C# konsolu uygulamasında bir yapılandırma dosyası kullanmaya çalışıyorum. Yeni -> Uygulama Yapılandırma Dosyası'na gidip bunu myProjectName.config olarak adlandırarak dosyayı proje içinde oluşturdum. Benim yapılandırma dosyası şöyle görünür:C# uygulama yapılandırma dosyası nasıl kullanılır?

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
<appSettings> 
<add key="SSDirectory" value="D:\Documents and Settings\****\MyDocuments\****" /> 
</appSettings> 
</configuration> 

kod erişmek için bu şuna benzer:

private FileValidateUtil() 
    { 
     sSDirFilePath = ConfigurationSettings.AppSettings["SSDirectory"]; 
     if (sSDirFilePath == null) 
      Console.WriteLine("config file not reading in."); 
    } 

Herkes neden bu çalışmıyor dair bir ipucu verir misin

? (Hata iletisini alıyorum.)

Teşekkürler!

badPanda

+0

Hangi hata mesajı? –

+0

Bu belirsizliği herkesten özür dilerim. Bir hata iletisinden bahsettiğimde, ' 'da okuma yapılamadığını belirten console.writeline deyimi, karışıklıktan dolayı özür dileriz. – badpanda

cevap

8

Sen app.config adını değiştiremezsiniz ve ona daha fazla bilgi vermeden onu bulmak için ConfigurationManager bekliyoruz. MyProjectName.config öğesinin adını app.config olarak değiştirin, yeniden oluşturun ve myProjectName.exe.config adlı bin klasöründe bir dosya göreceksiniz. Ardından, ConfigurationManager.AppSettings numaralı aramanız doğru şekilde çalışmalıdır.

2

Öncelikle, yerine ConfigurationSettings ait ConfigurationManager kullanın.

İkincisi, "işe yaramıyor" demek yerine, yararlı bir bilgi vermemek yerine, ne gördüğünüzü bize bildirin. Derler mi? Çalışma zamanında bir istisna atar mı? PC'niz sigara içmeye ve plastik eritmeye benziyor mu?

bu deneyin:

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

Aslında, hata mesajını if ifadesine attığımı söylemiştim ama cevabınız için teşekkür ederim. – badpanda

İlgili konular