コード例 #1
0
        /// <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);
        }
コード例 #2
0
        /// <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);
        }