Jak mogę dodać i odczytać wartość z pliku web.config ?
c#
.net
asp.net
web-config
Amira Elsayed Ismail
źródło
źródło
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
źródło
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"];
źródło
ToString
jawnie, ponieważ indeksatorzy samiAppSettings
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; } } }
źródło
Zakładając, że klucz znajduje się wewnątrz
<appSettings>
węzła:ConfigurationSettings.AppSettings["theKey"];
Co do „pisania” - po prostu nie.
Plik web.config nie jest do tego przeznaczony, jeśli zamierzasz ciągle zmieniać wartość, umieść ją w statycznej klasie pomocniczej.
źródło
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
źródło
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");
źródło