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

推荐订阅源

Y
Y Combinator Blog
腾讯CDC
Recent Announcements
Recent Announcements
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Hugging Face - Blog
Hugging Face - Blog
H
Help Net Security
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Last Week in AI
Last Week in AI
博客园_首页
D
DataBreaches.Net
P
Proofpoint News Feed
云风的 BLOG
云风的 BLOG
V
Visual Studio Blog
月光博客
月光博客
Jina AI
Jina AI
Stack Overflow Blog
Stack Overflow Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 【当耐特】
Vercel News
Vercel News
WordPress大学
WordPress大学
J
Java Code Geeks
博客园 - 聂微东
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
U
Unit 42

博客园 - 落叶潇潇雨

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;

            }

        }