2011-10-24 75 views
3

我需要從app.config文件中檢索密鑰設置的名稱。從app.config文件中檢索設置的名稱

例如:

我的app.config文件:

<setting name="IGNORE_CASE" serializeAs="String"> 
    <value>False</value> 
</setting> 

我知道我可以使用檢索值:

Properties.Settings.Default.IGNORE_CASE 

有沒有辦法讓字符串「IGNORE_CASE 「從我的鑰匙設置?

+0

不可用,只是還沒有,但在C#6.0中,您將能夠使用'nameof'運算符:http://visualstudio.uservo ice.com/forums/121579-visual-studio/suggestions/2427047-add-nameof-operator-in-c –

回答

3

試試這個:

System.Collections.IEnumerator enumerator = Properties.Settings.Default.Properties.GetEnumerator(); 

while (enumerator.MoveNext()) 
{ 
    Debug.WriteLine(((System.Configuration.SettingsProperty)enumerator.Current).Name); 
} 

編輯:用foreach方法,因爲在寫作時建議

foreach (System.Configuration.SettingsProperty property in Properties.Settings.Default.Properties) 
{ 
    Debug.WriteLine("{0} - {1}", property.Name, property.DefaultValue); 
} 
+1

你應該使用'foreach' – SLaks

+0

正確,更新... –

+0

謝謝你的答案,但是這樣我被迫循環所有設置。 –

8

示例代碼here顯示如何遍歷所有設置以讀取其鍵值&的值。

摘錄爲了方便:

// Get the AppSettings section.   
// This function uses the AppSettings property 
// to read the appSettings configuration 
// section. 
public static void ReadAppSettings() 
{ 
    // Get the AppSettings section. 
    NameValueCollection appSettings = 
     ConfigurationManager.AppSettings; 

    // Get the AppSettings section elements. 
    for (int i = 0; i < appSettings.Count; i++) 
    { 
     Console.WriteLine("#{0} Key: {1} Value: {2}", 
     i, appSettings.GetKey(i), appSettings[i]); 
    } 
} 
相關問題