2012-10-04 49 views
6

我通常使用一個文本文件作爲配置。但是這一次,我想利用的app.config到一個文件名(鍵)與名稱(值)相關聯,並在組合框中winform中的C#app.config

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <appSettings> 
    <add key="Scenario1.doc" value="Hybrid1"/> 
    <add key="Scenario2.doc" value="Hybrid2"/> 
    <add key="Scenario3.doc" value="Hybrid3"/> 
</appSettings> 
</configuration> 

將這項工作提供的名字呢?如何檢索數據?

回答

11

直起docs

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

    // Get the AppSettings section elements. 
    Console.WriteLine(); 
    Console.WriteLine("Using AppSettings property."); 
    Console.WriteLine("Application settings:"); 

    if (appSettings.Count == 0) 
    { 
     Console.WriteLine("[ReadAppSettings: {0}]", 
     "AppSettings is empty Use GetSection command first."); 
    } 
    for (int i = 0; i < appSettings.Count; i++) 
    { 
     Console.WriteLine("#{0} Key: {1} Value: {2}", 
     i, appSettings.GetKey(i), appSettings[i]); 
    } 
    } 
    catch (ConfigurationErrorsException e) 
    { 
    Console.WriteLine("[ReadAppSettings: {0}]", 
     e.ToString()); 
    } 
} 

所以,如果你想訪問設置Scenario1.doc,你可以這樣做:

var value = ConfigurationManager.AppSettings["Scenario1.doc"];

編輯:

由於加布裏埃爾GM在評論中表示,你將不得不添加對System.Configuration的引用。

+0

我正在使用.NET 4.0 –

+1

我發佈的作品是2.0 ** + **。 – Gromer

+9

如果您沒有看到'ConfigurationManager',請嘗試將'system.configuration'添加到您的項目引用中。 –

0

app.config中的應用程序設置將存儲應用程序/環境特定設置,而不是存儲綁定到UI的數據。

如果你不能避免存儲,因爲怪異的業務請求的配置,我寧願堅持一個單一的設置

<add key="FileDropDown" value="File1-Value|File2-Value" /> 

,寫C#代碼來獲得這個設置ConfigurationManager.AppSettings["FileDropDown"],並做一些字符串拆分(「|」)和(' - ')創建kvp集合並將其綁定到UI。