Web.config dosyasından değeri nasıl ekleyip okuyabilirim ?
Web.config dosyasından değeri nasıl ekleyip okuyabilirim ?
Yanıtlar:
Web.config dosyasını kendi başınıza değiştirmemenizi öneririm çünkü her değişiklik yaptığınızda, uygulamanızı yeniden başlatacaktır.
Ancak web.config dosyasını kullanarak System.Configuration.ConfigurationManager.AppSettings
Aşağıdaki web.config verildiğinde:
<appSettings>
<add key="ClientId" value="127605460617602"/>
<add key="RedirectUrl" value="http://localhost:49548/Redirect.aspx"/>
</appSettings>
Örnek kullanım:
using System.Configuration;
string clientId = ConfigurationManager.AppSettings["ClientId"];
string redirectUrl = ConfigurationManager.AppSettings["RedirectUrl"];
ToString
indeksleyiciler olarak kendilerinin AppSettings
dönüş değeri üzerine açıkça çağırmanıza gerek yokstring
Temel bilgileri istiyorsanız, tuşlara şu yolla erişebilirsiniz:
string myKey = System.Configuration.ConfigurationManager.AppSettings["myKey"].ToString();
string imageFolder = System.Configuration.ConfigurationManager.AppSettings["imageFolder"].ToString();
Web yapılandırma anahtarlarıma erişmek için uygulamamda her zaman statik bir sınıf oluştururum. Bu, onlara ihtiyacım olan her yerde erişebileceğim ve dizeleri uygulamamın her yerinde kullanmadığım anlamına gelir (web yapılandırmasında değişirse, bunları değiştiren tüm olaylardan geçmek zorunda kalırım). İşte bir örnek:
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; }
}
}
Anahtarın <appSettings>
düğüm içinde bulunduğunu varsayarsak :
ConfigurationSettings.AppSettings["theKey"];
"Yazma" konusuna gelince - basitçe söylemek gerekirse, yapma .
Web.config bunun için tasarlanmamıştır, eğer bir değeri sürekli değiştirecekseniz, onu statik bir yardımcı sınıfa koyun.
Ryan Farley'in blogunda, web.config dosyalarına geri yazmama nedenlerinin tümü de dahil olmak üzere, bununla ilgili harika bir gönderi var: .NET Uygulamanızın Yapılandırma Dosyasına Yazmak
Tüm appSetting'imi bu şekilde çağırmak için siteConfiguration sınıfıyım. Birine yardımı olacaksa paylaşırım.
"web.config" de aşağıdaki kodu ekleyin
<configuration>
<configSections>
<!-- some stuff omitted here -->
</configSections>
<appSettings>
<add key="appKeyString" value="abc" />
<add key="appKeyInt" value="123" />
</appSettings>
</configuration>
Artık tüm appSetting değerinizi almak için bir sınıf tanımlayabilirsiniz. bunun gibi
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;
}
}
}
}
Şimdi önceki sınıfın referansını ekleyin ve aşağıdaki gibi önemli bir çağrıya erişin
string appKeyStringVal= SiteConfigurationReader.appKeyString;
int appKeyIntVal= SiteConfigurationReader.appKeyInt;
int appKeyStringByPassingKey = SiteConfigurationReader.GetAppSettingsInteger("appKeyInt");