example editar connectionstrings configurationsettings app c# appsettings configurationmanager

c# - editar - ¿Cómo verificar si existe una clave appSettings?



editar app config c# (7)

Creo que la expresión LINQ puede ser la mejor:

const string MyKey = "myKey" if (ConfigurationManager.AppSettings.AllKeys.Any(key => key == MyKey)) { // Key exists }

¿Cómo verifico si hay una configuración de aplicación disponible?

es decir, app.config

<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key ="someKey" value="someValue"/> </appSettings> </configuration>

y en el archivo de código

if (ConfigurationManager.AppSettings.ContainsKey("someKey")) { // Do Something }else{ // Do Something Else }


Las opciones superiores dan flexibilidad a todas las formas, si conoce el tipo de clave intente analizarlas bool.TryParse(ConfigurationManager.AppSettings["myKey"], out myvariable);


Si la clave que está buscando no está presente en el archivo de configuración, no podrá convertirla en una cadena con .ToString () porque el valor será nulo y obtendrá una "Referencia del objeto no configurada". a una instancia de un objeto "error". Lo mejor es primero ver si el valor existe antes de tratar de obtener la representación de cadena.

if (!String.IsNullOrEmpty(ConfigurationManager.AppSettings["myKey"])) { String myKey = ConfigurationManager.AppSettings["myKey"].ToString(); }

O, como Code Monkey sugirió:

if (ConfigurationSettings.AppSettings["myKey"] != null) { // Now do your magic.. }


Valor predeterminado devuelto de forma segura a través de genéricos y LINQ.

public T ReadAppSetting<T>(string searchKey, T defaultValue) { if (ConfigurationManager.AppSettings.AllKeys.Any(key => key == searchKey)) { try { // see if it can be converted var converter = TypeDescriptor.GetConverter(typeof(T)); if (converter != null) { defaultValue = (T)converter.ConvertFromString(ConfigurationManager.AppSettings.GetValues(searchKey).First()); } } catch { } // nothing to do, just return default } return defaultValue; }

Utilizado de la siguiente manera:

string LogFileName = ReadAppSetting("LogFile","LogFile"); double DefaultWidth = ReadAppSetting("Width",1280.0); double DefaultHeight = ReadAppSetting("Height",1024.0); Color DefaultColor = ReadAppSetting("Color",Colors.Black);


var isAlaCarte = ConfigurationManager.AppSettings.AllKeys.Contains ("IsALaCarte") && bool.Parse (ConfigurationManager.AppSettings.Get ("IsALaCarte"));


MSDN: Configuration Manager.AppSettings

if (ConfigurationManager.AppSettings[name] != null) { // Now do your magic.. }

o

string s = ConfigurationManager.AppSettings["myKey"]; if (!String.IsNullOrEmpty(s)) { // Key exists } else { // Key doesn''t exist }


if (ConfigurationManager.AppSettings.AllKeys.Contains("myKey")) { // Key exists } else { // Key doesn''t exist }