2010-11-19 10 views
1

Konfigurationsdatei.Einstellungen von App.Config lesen

Wie soll ich Werte von Benutzername und Passwort in C# mit System.Configuration.ConfigurationManager Klasse lesen? Ich habe mehrere Sachen ausprobiert, aber ohne Erfolg.

Die app.config ist unten angegeben.

<configuration> 
    <configSections> 
     <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" > 
      <section name="Fulfillment.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     </sectionGroup> 
    </configSections> 
    <applicationSettings> 
     <Fulfillment.Properties.Settings> 
      <setting name="username" serializeAs="String"> 
       <value>MyUserName</value> 
      </setting> 
      <setting name="password" serializeAs="String"> 
       <value>MyPassword</value> 
      </setting> 
     </Fulfillment.Properties.Settings> 
    </applicationSettings> 
</configuration> 

Bitte helfen. Vielen Dank.

+0

Dies ist keine gültige XML-Datei. Ich sehe kein abschließendes 'applicationSettings' Element. – Oded

+0

@Oded, es ist eindeutig ein Auszug aus seiner Datei web.config. Es gibt mehrere Knoten, die nicht geschlossen sind. Er postet nur, was er für relevant hält. –

+1

@ mjw06d - Ich habe gelernt, solche Annahmen vor einiger Zeit nicht mehr zu machen. Wenn er gesagt hätte, dass dies ein Auszug ist, dann ist es in Ordnung. – Oded

Antwort

2

Ich verwende Benutzervariablen in meiner Anwendung, und greifen Sie mit:

var PropertyValue = Properties.Settings.Default.PropertyName 

wo Property MyUserName oder MyPassword in Ihrem Fall wäre.

+0

Entschuldigung, ich sehe, dass Sie Ihren Beitrag bearbeitet haben und Sie Anwendungswerte verwenden. – Dave

+0

Ok danke, das funktioniert. Das wusste ich nicht. Aber es sollte eine Möglichkeit geben, sie mithilfe der ConfigurationManager-Klasse zu lesen. sollte es nicht? –

+1

Ich habe den ConfigurationManager vorher noch nicht benutzt, aber zur Erinnerung, ein weiterer Punkt, den ich machen möchte, ist, dass Sie wahrscheinlich userSettings und * not * appSettings verwenden wollen. Nach meiner Erfahrung können AppSettings nur geändert werden, indem Sie die Werte in Visual Studio ändern und Ihre App neu kompilieren. Mit appSettings können Sie die Datei .exe.config direkt ändern. – Dave

7

Wenn die Werte im appSettings-Abschnitt der Datei sind:

<appSettings> 
    <add key="myUsername" value="david"/> 
    <add key="myPassword" value="iLikeHalibut"/> 
</appSettings> 

Sie können sie wie folgt lauten:

string myUsername = System.Configuration.ConfigurationManager.AppSettings["myUsername"]; 

Sie den sicheren Montag vornehmen müssen Sie programmieren, enthalten eine Verweis auf System.Configuration.dll (es ist nicht immer standardmäßig dort).

+0

Ja, das weiß ich, ich bin gerade auf diese app.config gestoßen und habe versucht, mithilfe von ConfigurationManager zu lesen, ohne Erfolg. Aber nicht über die Settings-Klasse, die über Properties-Klasse mit Ihrem Projekt gelesen werden kann. Danke allen. –