惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Microsoft Azure Blog
Microsoft Azure Blog
GbyAI
GbyAI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
Recent Announcements
Recent Announcements
L
LangChain Blog
B
Blog
阮一峰的网络日志
阮一峰的网络日志
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
M
MIT News - Artificial intelligence
D
Docker
WordPress大学
WordPress大学
J
Java Code Geeks
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
博客园 - 叶小钗
Last Week in AI
Last Week in AI
Stack Overflow Blog
Stack Overflow Blog
有赞技术团队
有赞技术团队
MyScale Blog
MyScale Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky

博客园 - 落叶潇潇雨

Can't get WebApplicationContext object from ContextRegistry.GetContext(): Resource handler for the 'web' protocol is not defined Asp.net 导出Excel How to debug Typescript in browser log4net使用的关键点 DataContractSerializer序列化与反序列化遇到的奇怪问题 图文安装Windows Template Library - WTL Version 9.0 WCF的传输安全(读书笔记) Asp.net mvc 各个组件的分离 同程旅游网开放平台SDK开发完成 csdn回到顶端 SQL多行变一列 Timer的schedule和scheduleAtFixedRate方法的区别解析 android 主线程和子线程之间的消息传递 activity生命周期 瀑布流插件 CSS自适应宽度圆角按钮 ajaxFileUpload上传文件和表单数据 Ajax上传表单数据和文件 使用Rhino Mocks
xml序列化与反序列化
落叶潇潇雨 · 2016-04-17 · via 博客园 - 落叶潇潇雨

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;

            }

        }