Jak sprawdzić, czy ustawienie aplikacji jest dostępne?
tj. app.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="someKey" value="someValue"/>
</appSettings>
</configuration>
oraz w pliku kodu
if (ConfigurationManager.AppSettings.ContainsKey("someKey"))
{
// Do Something
}else{
// Do Something Else
}
Dim configValue As String = Util.IsNull(ConfigurationManager.AppSettings.Get("SettingName"), String.Empty)
źródło
Bezpiecznie zwrócono wartość domyślną za pośrednictwem typów ogólnych i LINQ.
Używane w następujący sposób:
źródło
ConfigurationManager.AppSettings
nie rozróżnia wielkości liter,Any(key => key == MyKey
ale jestusing System.ComponentModel;
oświadczenie do swojej klasy, aby wspierać korzystanie zTypeDescriptor
klasy.źródło
Jeśli szukanego klucza nie ma w pliku konfiguracyjnym, nie będzie można go przekonwertować na ciąg za pomocą .ToString (), ponieważ wartość będzie równa null i otrzymasz komunikat „Object reference not set do wystąpienia obiektu ”błąd. Najlepiej jest najpierw sprawdzić, czy wartość istnieje, zanim spróbujesz uzyskać reprezentację w postaci ciągu.
Lub, jak zasugerował Code Monkey:
źródło
Górne opcje dają elastyczność na wszystkie sposoby, jeśli znasz typ klucza, spróbuj je przeanalizować
bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);
źródło
Myślę, że wyrażenie LINQ może być najlepsze:
źródło
ConfigurationManager.AppSettings
nie rozróżnia wielkości liter,Any(key => key == MyKey
ale jestPodobała mi się odpowiedź codebender , ale potrzebowałem jej do pracy w C ++ / CLI. Na tym skończyłem. Nie ma użycia LINQ, ale działa.
źródło
Użycie nowej składni C # z TryParse działało dobrze dla mnie:
źródło