예제 #1
0
        /// <summary>
        /// Deserializes the given XML and returns the root as obj
        /// </summary>
        /// <param name="filename"></param>
        /// <param name="compress"></param>
        /// <param name="workspaceManager"></param>
        /// <returns></returns>
        public static object Deserialize(String filename, bool compress = false)
        {
            FileStream  sourceFile = File.OpenRead(filename);
            XmlDocument doc        = new XmlDocument();
            GZipStream  compStream = null;

            if (compress)
            {
                compStream = new GZipStream(sourceFile, CompressionMode.Decompress);
                doc.Load(compStream);
            }
            else
            {
                doc.Load(sourceFile);
            }

            try
            {
                return(XMLSerialization.Deserialize(doc));
            }
            finally
            {
                if (compStream != null)
                {
                    compStream.Close();
                }
            }
        }
예제 #2
0
        /// <summary>
        /// Serializes the given object and all of its members to the given file using
        /// the given encoding
        /// Works only on objects which are marked as "Serializable"
        /// If compress==true then GZip is used for compressing
        /// </summary>
        /// <param name="obj"></param>
        /// <param name="filename"></param>
        /// <param name="compress"></param>
        public static void Serialize(object obj, string filename, Encoding encoding, bool compress = false)
        {
            FileStream sourceFile = null;

            if (compress)
            {
                GZipStream   compStream = null;
                StreamWriter writer     = null;
                try
                {
                    sourceFile = File.Create(filename);
                    compStream = new GZipStream(sourceFile, CompressionMode.Compress);
                    writer     = new StreamWriter(compStream, encoding);
                    XMLSerialization.Serialize(obj, writer, compress);
                }
                finally
                {
                    if (writer != null)
                    {
                        writer.Close();
                    }
                    if (compStream != null)
                    {
                        compStream.Dispose();
                    }
                    if (sourceFile != null)
                    {
                        sourceFile.Close();
                    }
                }
            }
            else
            {
                StreamWriter writer = null;
                try
                {
                    sourceFile = File.Create(filename);
                    writer     = new StreamWriter(sourceFile, encoding);
                    XMLSerialization.Serialize(obj, writer);
                }
                finally
                {
                    if (writer != null)
                    {
                        writer.Close();
                    }
                    if (sourceFile != null)
                    {
                        sourceFile.Close();
                    }
                }
            }
        }
예제 #3
0
        public static object Deserialize(StreamWriter writer)
        {
            XmlDocument doc = new XmlDocument();

            writer.BaseStream.Position = 0;

            doc.Load(writer.BaseStream);

            try
            {
                return(XMLSerialization.Deserialize(doc));
            }
            finally
            {
                //writer.Close();
            }
        }
예제 #4
0
 /// <summary>
 /// Serializes the given object and all of its members to the given file using UTF-8 encoding
 /// Works only on objects which are marked as "Serializable"
 /// If compress==true then GZip is used for compressing
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="filename"></param>
 /// /// <param name="compress"></param>
 public static void Serialize(object obj, string filename, bool compress = false)
 {
     XMLSerialization.Serialize(obj, filename, Encoding.UTF8, compress);
 }