/// <summary> /// Serializa un alumno en Xml en la ruta especificada. Si esta no existe, la crea /// </summary> /// <param name="a">Alumno a serializar</param> /// <param name="path">Ruta donde se creara el archivo Xml que contiene al alumno</param> /// <returns>True si tuvo exito, false caso conotrario</returns> public bool Guardar(Alumno a, string path) { bool guardoConExito = false; bool flagArchivoCreado = false; //Si la ruta no existe, se crea if (!(ValidarArchivo(path))) { FileStream fs = new FileStream(path, FileMode.CreateNew); fs.Close(); flagArchivoCreado = true; } try { XmlTextWriter writer = new XmlTextWriter(path, System.Text.Encoding.UTF8); XmlSerializer serializador = new XmlSerializer(typeof(Alumno)); serializador.Serialize(writer, a); writer.Close(); guardoConExito = true; //Si tuve que crear el archivo porque la ruta era inexistente lanzo una excepcion if (flagArchivoCreado) { throw new ArchivoCreadoException(path); } } catch (ArchivoCreadoException excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("El siguiente archivo Xml fue creado: " + excepcion.Message); } catch (Exception ex) { throw ex; } return(guardoConExito); }
/// <summary> /// Serializa un alumno en binario en la ruta especificada. Si esta no existe, la crea /// </summary> /// <param name="alumno">Alumno a serializar</param> /// <param name="path">Ruta donde se creara el archivo Xml que contiene al alumno</param> /// <returns>True si tuvo exito, false caso conotrario</returns> public bool Guardar(Alumno alumno, string path) { bool exito = false; bool flagArchivoCreado = false; //Si la ruta no existe, se crea if (!(ValidarArchivo(path))) { FileStream fs = new FileStream(path, FileMode.CreateNew); fs.Close(); flagArchivoCreado = true; } try { Stream fs = new FileStream(path, FileMode.Open); BinaryFormatter serializdorBin = new BinaryFormatter(); serializdorBin.Serialize(fs, alumno); fs.Close(); exito = true; //Si tuve que crear el archivo porque la ruta era inexistente lanzo una excepcion if (flagArchivoCreado) { throw new ArchivoCreadoException(path); } } catch (ArchivoCreadoException excepcion) { //Se registra la informacion de la excepcion en un archivo txt ArchivoTxt.GuardarEnLog("El siguiente archivo binario fue creado: " + excepcion.Message); } catch (Exception ex) { throw ex; } return(exito); }