zoukankan      html  css  js  c++  java
  • xml序列化与反序列化

    public static void Serialize(ParseResult parseResult)
            {
                var filePath = Path.Combine(CachePath, parseResult.ParseTime + ".xml");
                if (File.Exists(filePath))
                {
                    File.SetAttributes(filePath, FileAttributes.Normal);
                    File.Delete(filePath);
                }
                var ds = new XmlSerializer(typeof(ParseResult));
                var settings = new XmlWriterSettings { Indent = true };
                using (var writer = XmlWriter.Create(filePath, settings))
                {
                    ds.Serialize(writer, parseResult);
                }
            }
            
            public static ParseResult Deserialize(string fileName)
            {
                try
                {
                    var serializer = new XmlSerializer(typeof(ParseResult));
                    var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read);
                    var parseResult = serializer.Deserialize(stream) as ParseResult;
                    stream.Close();
                    return parseResult;
                }
                catch
                {
                    return null;
                }
            }
          public static void Serialize<T>(T parseResult, string fileName)
            {
                var filePath = Path.Combine(DirectoryPath, fileName);
                if (File.Exists(filePath))
                {
                    File.SetAttributes(filePath, FileAttributes.Normal);
                    File.Delete(filePath);
                }
                var ds = new XmlSerializer(typeof(T));
                var settings = new XmlWriterSettings { Indent = true };
                using (var writer = XmlWriter.Create(filePath, settings))
                {
                    ds.Serialize(writer, parseResult);
                }
            }
            public static T Deserialize<T>(string fileName)
            {
                try
                {
                    var serializer = new XmlSerializer(typeof(T));
                    var stream = new FileStream(Path.Combine(DirectoryPath, fileName), FileMode.Open, FileAccess.Read);
                    var parseResult = (T)serializer.Deserialize(stream);
                    stream.Close();
                    return parseResult;
                }
                catch (Exception exception)
                {
                    return default(T);
                }
            }

    public static string Serialize<T>(T parseResult)
            {
                try
                {
                    var buffer = new StringBuilder();
                    var ds = new XmlSerializer(typeof(T));
                    using (var writer = new StringWriter(buffer))
                    {
                        ds.Serialize(writer, parseResult);
                    }
                    return buffer.ToString();
                }
                catch (Exception)
                {
                    return string.Empty;
                }
            }
  • 相关阅读:
    图像处理国际会议
    [2015更新]用Word2007写CSDN博客
    【超详细教程】使用Windows Live Writer 2012和Office Word 2013 发布文章到博客园全面总结
    奇异秀App:奇异秀秀奇异,用大头视频来拜年
    通俗讲解傅里叶级数
    LIBSVM的使用方法
    VC6.0的工程设置解读Project--Settings
    HOG:从理论到OpenCV实践
    如何在 Kaggle 首战中进入前 10%
    linux学习(2)
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/5400247.html
Copyright © 2011-2022 走看看