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;
                }
            }
  • 相关阅读:
    WCF 第十章 异常处理 创建并使用强类型错误
    WCF 第十章 总结
    WCF 第十章 异常处理
    WCF 第十章 异常处理 使用FaultException管理服务异常
    WCF 第十章 异常处理 通信异常细节
    哪本书是对程序员最有影响、每个程序员都该阅读的书?(转自外刊IT评论)
    WCF 第十一章 工作流服务 从WF调用一个WCF服务
    比尔盖茨给大学毕业生的11条人生忠告
    王爽 汇编语言 实验七
    王爽 汇编语言 实验五第5题和第6题
  • 原文地址:https://www.cnblogs.com/jackhuclan/p/5400247.html
Copyright © 2011-2022 走看看