¿ConfigurationManager.AppSettings ["blah"] arrojará una excepción si "blah" no existe en la web / app.config?
Sinceras disculpas por la pregunta súper perezosa.
.net
configuration
Ben Aston
fuente
fuente
NameValueCollection.Item
propiedad ...Respuestas:
No, vuelve
null
.fuente
De la documentación de MSDN para NameValueCollection.Item Property (String) :
fuente
No, vuelve
null
.AppSettings es una NameValueCollection , según la advertencia en la página NameValueCollection . Obtenga :
fuente
No, vuelve
null
.ConfigurationManager.AppSettings
es unNameValueCollection
- de la documentación de MSDN :(mi énfasis)
fuente
Otras respuestas hacen referencia a la documentación de la propiedad Artículo. Es posible que no sea inmediatamente obvio por qué son relevantes mirando el siguiente fragmento de código.
La sintaxis de corchetes se usa en C # para acceder a los indexadores. Estas son propiedades especiales que permiten indexar una clase de la misma manera que una matriz. Si observa la definición de la propiedad NameValueCollection.Item , notará que no utiliza la sintaxis de propiedad normal. La palabra clave this y los parámetros del indexador se utilizan para definir esta propiedad como un indexador.
En la documentación, los indexadores se denominan implícitamente Item y los parámetros están entre corchetes.
No me queda claro por qué hubo respuestas que hicieron referencia al método Get , ¿tal vez una llama a la otra?
En cualquier caso, para responder la pregunta ...
No. No se lanzará una excepción si accede a una clave inexistente; se devolverá un valor nulo.
Aquí está la sección relevante de la documentación de propiedad NameValueCollection.Item .
fuente
Sí http://msdn.microsoft.com/en-us/library/system.configuration.configurationmanager.appsettings.aspx
Editar: esto está claramente mal. A la izquierda para los comentarios útiles a continuación.
fuente
NameValueCollection
no se puede encontrar, es decir, el sistema no puede encontrar ninguna configuración. Name Value Collections no arroja una excepción cuando intenta recuperar un valor único que no existe ..