Leer archivo .config del servidor desde aplicacion libreria de cla

08/01/2009 - 19:53 por Yoselyn | Informe spam
Hola que tal amigos!

Les cuento mi problema, estoy desarrollando con vs.net 2005, con c# una
aplicacion windows,
la cual consta de la siguiente estructura:
El proyecto windows que es donde están todas las pantallas, las interfaces
de usuario.
Un proyecto web, con algunos servicios web que me facilitan el acceso a las
funciones de acceso a los datos (a futuro este debería alojarse en un
servidor web). Y
Dos proyectos que son del tipo libreria de clases, en estos es que tengo la
logica de la aplicación, accedo a la BD etc..


Mi problema es que tengo en el proyecto web un archivo de configuración el
cual necesito acceder desde mis proyectos de librerias de clases, de momento
para abrir el archivo lo hago con una funcion asi:

public static string GetAppSetting(string key, string DefaultValue)
{
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "C:\\proyectos\\ProyWeb\\ProyWeb.config";

Configuration config ConfigurationManager.OpenMappedExeConfiguration(fi leMap,
ConfigurationUserLevel.None);

return config.AppSettings.Settings[key].Value;
}

De esta manera puedo leer el archivo .config y todos sus keys, pero
obviamente tengo un problema porque la ruta se la estoy dando a mano y esta
va a cambiar cuando se instale el sistema..

¿De que manera pudiera hacer esto?
¿Se puede abrir el archivo usando una especie de namespace o algo asi?

Me preocupa también que esta ruta no la guarde en algún lugar donde una ves
instalado el sistema pueda ser visto por los usuarios ya que hay información
"sensible" en este .config para la aplicacion.

De antemano gracias por la ayuda que me puedan brindar!
 

Leer las respuestas

#1 Jesús
09/01/2009 - 12:35 | Informe spam
En realidad es muy sencillo y no hay que hacer nada especial, ya que
ConfigurationManager lee el archivo de configuración de la aplicación que se
está ejecutando, aunque lo estés utilizando en una librería de clases:


public static string GetAppSetting(string key, string defaultValue)
{
string setting = ConfigurationManager.AppSettings[key];
if (string.IsNullOrEmpty(setting))
{
return defaultValue;
}
else
{
return setting;
}
}


"Yoselyn" escribió en el mensaje de
noticias news:
Hola que tal amigos!

Les cuento mi problema, estoy desarrollando con vs.net 2005, con c# una
aplicacion windows,
la cual consta de la siguiente estructura:
El proyecto windows que es donde están todas las pantallas, las interfaces
de usuario.
Un proyecto web, con algunos servicios web que me facilitan el acceso a
las
funciones de acceso a los datos (a futuro este debería alojarse en un
servidor web). Y
Dos proyectos que son del tipo libreria de clases, en estos es que tengo
la
logica de la aplicación, accedo a la BD etc..


Mi problema es que tengo en el proyecto web un archivo de configuración el
cual necesito acceder desde mis proyectos de librerias de clases, de
momento
para abrir el archivo lo hago con una funcion asi:

public static string GetAppSetting(string key, string DefaultValue)
{
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = "C:\\proyectos\\ProyWeb\\ProyWeb.config";

Configuration config > ConfigurationManager.OpenMappedExeConfiguration(fi leMap,
ConfigurationUserLevel.None);

return config.AppSettings.Settings[key].Value;
}

De esta manera puedo leer el archivo .config y todos sus keys, pero
obviamente tengo un problema porque la ruta se la estoy dando a mano y
esta
va a cambiar cuando se instale el sistema..

¿De que manera pudiera hacer esto?
¿Se puede abrir el archivo usando una especie de namespace o algo asi?

Me preocupa también que esta ruta no la guarde en algún lugar donde una
ves
instalado el sistema pueda ser visto por los usuarios ya que hay
información
"sensible" en este .config para la aplicacion.

De antemano gracias por la ayuda que me puedan brindar!

Preguntas similares