web-dev-qa-db-de.com

Variable aus Web.Config lesen

Wie kann ich den Wert aus der Datei web.config hinzufügen und lesen?

79

Ich würde Ihnen empfehlen, web.config nicht von Ihrer zu ändern, da bei jeder Änderung Ihre Anwendung neu gestartet wird.

Sie können jedoch web.config mit System.Configuration.ConfigurationManager.AppSettings lesen.

65
Muhammad Akhtar

Angesichts der folgenden web.config:

<appSettings>
     <add key="ClientId" value="127605460617602"/>
     <add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>

Verwendungsbeispiel:

using System.Configuration;

string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
122
PrateekSaluja

Wenn Sie die Grundlagen möchten, können Sie die Schlüssel über folgende Befehle aufrufen:

string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();

Um auf meine Web-Konfigurationsschlüssel zuzugreifen, mache ich immer eine statische Klasse in meiner Anwendung. Dies bedeutet, dass ich auf sie zugreifen kann, wo immer ich sie brauche, und ich verwende die Zeichenfolgen nicht in meiner gesamten Anwendung. Hier ist ein Beispiel:

using System.Configuration;

public static class AppSettingsGet
{    
    public static string myKey
    {
        get { return ConfigurationManager.AppSettings["myKey"].ToString(); }
    }

    public static string imageFolder
    {
        get { return ConfigurationManager.AppSettings["imageFolder"].ToString(); }
    }

    // I also get my connection string from here
    public static string ConnectionString
    {
       get { return ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString; }
    }
}
16
ThePower

Angenommen, der Schlüssel befindet sich im Knoten <appSettings>:

ConfigurationSettings.AppSettings["theKey"];

Wie beim "Schreiben" - einfach gesagt, nicht.

Die web.config ist nicht dafür ausgelegt. Wenn Sie einen Wert ständig ändern möchten, setzen Sie ihn in eine statische Hilfsklasse.

6
RPM1984

Ryan Farley hat in seinem Blog einen großartigen Beitrag dazu, einschließlich aller Gründe, warum nicht in web.config-Dateien zurückgeschrieben werden soll: In die Konfigurationsdatei Ihrer .NET-Anwendung schreiben

3
CD..

Ich bin eine siteConfiguration-Klasse, um alle meine appSetting-Einstellungen auf diese Weise aufzurufen. Ich teile es, wenn es jemandem helfen wird.

fügen Sie den folgenden Code in der "web.config" hinzu

<configuration>
   <configSections>
     <!-- some stuff omitted here -->
   </configSections>
   <appSettings>
      <add key="appKeyString" value="abc" />
      <add key="appKeyInt" value="123" />  
   </appSettings>
</configuration>

Jetzt können Sie eine Klasse definieren, um alle AppSetting-Werte abzurufen. so was 

using System; 
using System.Configuration;
namespace Configuration
{
   public static class SiteConfigurationReader
   {
      public static String appKeyString  //for string type value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyString");
         }
      }

      public static Int32 appKeyInt  //to get integer value
      {
         get
         {
            return ConfigurationManager.AppSettings.Get("appKeyInt").ToInteger(true);
         }
      }

      // you can also get the app setting by passing the key
      public static Int32 GetAppSettingsInteger(string keyName)
      {
          try
          {
            return Convert.ToInt32(ConfigurationManager.AppSettings.Get(keyName));
        }
        catch
        {
            return 0;
        }
      }
   }
}

Fügen Sie nun die Referenz der vorherigen Klasse hinzu und rufen Sie wie unten beschrieben einen Schlüsselanruf auf

string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");
0
reza.cse08