2012-10-04 7 views
6

Ich verwende normalerweise eine Textdatei als eine Konfig. Aber dieses Mal Ich mag würde app.config verwenden, einen Dateinamen (key) mit einem Namen (Wert) zu verknüpfen und die Namen in KombinationsfeldC# app.config in winform

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

wird diese Arbeit zur Verfügung stellen? Wie kann ich die Daten abrufen?

Antwort

11

Gerade vom 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()); 
    } 
} 

Also, wenn Sie die Einstellung Scenario1.doc zugreifen möchten, müssen Sie dies tun:

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

Edit:

Als Gabriel GM sagte in den Kommentaren, müssen Sie einen Verweis auf System.Configuration hinzufügen.

+0

Ich benutze .NET 4.0 –

+1

Was ich veröffentlichte funktioniert in 2.0 ** + **. – Gromer

+9

Wenn Sie 'ConfigurationManager' nicht sehen, versuchen Sie,' system.configuration' zu Ihren Projektreferenzen hinzuzufügen. –

0

App-Einstellungen in app.config dienen zum Speichern anwendungs-/umgebungsspezifischer Einstellungen, um keine Daten zu speichern, die an die Benutzeroberfläche gebunden sind.

Wenn Sie vermeiden kann nicht wegen seltsamen Geschäftsanforderungen in Config speichern würde ich lieber stehen zu einer einzigen Einstellung

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

und C# Code schreiben, um diese ConfigurationManager.AppSettings["FileDropDown"] zu erhalten Einstellung und einige String-Splits tun (‚|‘) und ('-') kvp collection erstellen und an die UI binden.