Estoy tratando de leer las claves del Web.config
archivo en una capa diferente a la capa web (misma solución)
Esto es lo que estoy intentando:
string userName = System.Configuration.ConfigurationManager.AppSettings["PFUserName"];
string password = System.Configuration.ConfigurationManager.AppSettings["PFPassWord"];
Y aquí está mi appSettings
en el Web.config
archivo:
<configuration>
....
<appSettings>
<add key="PFUserName" value="myusername"/>
<add key="PFPassWord" value="mypassword"/>
</appSettings>
....
</configuration>
Cuando depuro el código username
y password
son justos null
, no se obtiene el valor de las claves.
¿Qué estoy haciendo mal para leer estos valores?
c#
asp.net-mvc
sarga
fuente
fuente
NULL
. Comentario tardío pero nadie señaló esto.Respuestas:
Intente usar la clase WebConfigurationManager en su lugar. Por ejemplo:
fuente
fuente
ToString()
aunque es redundante.string value = ConfigurationManager.AppSettings[key] ?? "unknown value"
Si la persona que llama es otro proyecto, debe escribir la configuración en el proyecto de la persona que llama, no en el llamado.
fuente
Encontré esta solución muy útil . Utiliza C # 4.0 DynamicObject para ajustar el ConfigurationManager. Entonces, en lugar de acceder a valores como este:
accede a ellos como una propiedad:
EDITAR : Agregar fragmento de código en caso de que el enlace se vuelva obsoleto:
fuente
El camino completo para ello es
fuente
Habrá dos archivos Web.config. Creo que puede haber confundido con esos dos archivos.
Mira esta imagen:
En esta imagen puede ver dos archivos Web.config. Debe agregar sus constantes a la que está en la carpeta del proyecto y no en la carpeta de vistas
Espero que esto te pueda ayudar
fuente
Este problema ocurre si este proyecto está siendo utilizado por otro proyecto. Asegúrese de copiar las claves de configuración de la aplicación en el proyecto principal app.config o web.config.
fuente
También puede probar esta línea para obtener el valor de cadena del
app.config
archivo.fuente
con la siguiente configuración en el archivo .config:
prueba esto:
fuente
Lo siento, no he probado esto, pero creo que se hace así:
fuente