Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/06/2010, 17:11
Avatar de erick_arcini
erick_arcini
 
Fecha de Ingreso: julio-2005
Ubicación: Jaltenco / DF
Mensajes: 1.723
Antigüedad: 19 años, 8 meses
Puntos: 50
Sobreescribir un XmlDocument

Hola gente

tengo una dll con unos métodos estáticos de la siguiente forma:

Código C:
Ver original
  1. static public string CadenaConexion(bool soloDatos)
  2. static public bool GuardaCadenaConexion(string servidor, string baseDeDatos, string user, string password)

Cuando cargo la aplicación se ejecuta el primer evento, este primer evento carga unos datos de un xml de la siguiente manera:


Código C:
Ver original
  1. XPathDocument documentoXml = null;
  2.             string archivoConfiguracion = string.Format("{0}\\{1}.xml",
  3.                 Path.GetDirectoryName(Assembly.GetAssembly(typeof(Configuracion)).CodeBase), "configuracion");
  4.             archivoConfiguracion = archivoConfiguracion.Replace("file:\\", "");
  5.             if (File.Exists(archivoConfiguracion))
  6.             {
  7.                 if (new FileInfo(archivoConfiguracion).Extension.Contains("xml"))
  8.                 {
  9.                     string xmlDoc = File.ReadAllText(archivoConfiguracion);
  10.                     Stream str = new MemoryStream(Encoding.ASCII.GetBytes(xmlDoc));
  11.                     XmlTextReader lector = new XmlTextReader(str);
  12.                     documentoXml = new XPathDocument(lector);
  13.                     lector.Close();
  14.                     if (documentoXml == null)
  15.                     {
  16.                         throw new System.Exception("El archivo de configuración no se cargo correctamente.");
  17.                     }
  18.                 }
  19.                 else
  20.                 {
  21.                     throw new TypeFileException("El tipo de archivo seleccionado no puede cargarse como uso de configuración del sistema.");
  22.                 }
  23.             }
  24.             else
  25.             {
  26.                 throw new FileNotFoundException("Archivo de configuración no se localizó o fue borrado del sistema.");
  27.             }

hasta ahí todo bien.

El problema viene cuando quiero guardar algunas modificaciones de un XmlDocument en la siguiente función:


Código C:
Ver original
  1. XmlDocument documento = new XmlDocument();
  2.             string archivoConfiguracion = string.Format("{0}\\{1}.xml",
  3.              Path.GetDirectoryName(Assembly.GetAssembly(typeof(Configuracion)).CodeBase), "configuracion");
  4.             archivoConfiguracion = archivoConfiguracion.Replace("file:\\", "");
  5.  
  6.             string xmlDoc = File.ReadAllText(archivoConfiguracion);
  7.             Stream str = new MemoryStream(Encoding.ASCII.GetBytes(xmlDoc));
  8.             documento.Load(str);
  9.            
  10.             bool salida = false;
  11.  
  12. /*aqui va mi proceso de validaciones*/
  13.  
  14.  
  15.             documento.Save(archivoConfiguracion);

Pero me indica que no puedo sobreescribir el archivo por que según esta abierto, como puedo guardar o sobreescribir el archivo siendo que en ningún momento lo abro, solo obtengo el texto como tal, espero su ayuda.
__________________
Mejoremos nuestro país, ayudemos al planeta... próximamente.