Jak mogę dodać i odczytać wartość z pliku web.config ?
Jak mogę dodać i odczytać wartość z pliku web.config ?
Odpowiedzi:
Sugerowałbym, abyś nie modyfikował pliku web.config z twojego, ponieważ za każdym razem, gdy zmiana, uruchomi ponownie twoją aplikację.
Możesz jednak czytać web.config za pomocą System.Configuration.ConfigurationManager.AppSettings
Biorąc pod uwagę następujący plik web.config:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Przykładowe użycie:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
jawnie, ponieważ indeksatorzy sami AppSettings
zwracają wartość typustring
Jeśli chcesz mieć podstawy, możesz uzyskać dostęp do kluczy za pośrednictwem:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Aby uzyskać dostęp do moich kluczy konfiguracyjnych, zawsze tworzę statyczną klasę w mojej aplikacji. Oznacza to, że mogę uzyskać do nich dostęp, gdziekolwiek potrzebuję i nie używam ciągów w całej mojej aplikacji (jeśli zmieni się w konfiguracji sieciowej, musiałbym przejść przez wszystkie zdarzenia, zmieniając je). Oto próbka:
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; }
}
}
Ryan Farley zamieścił na swoim blogu świetny post na ten temat, zawierający wszystkie powody, dla których nie należy zapisywać z powrotem do plików web.config: Zapisywanie do pliku konfiguracyjnego aplikacji .NET
Jestem klasą siteConfiguration do wywoływania wszystkich moich ustawień appSetting w ten sposób. Podzielę się tym, jeśli komuś to pomoże.
dodaj następujący kod w pliku „web.config”
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
Teraz możesz zdefiniować klasę do pobierania całej wartości appSetting. lubię to
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;
}
}
}
}
Teraz dodaj odniesienie do poprzedniej klasy i uzyskaj dostęp do wywołania klucza, takiego jak poniżej
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");