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

推荐订阅源

The Last Watchdog
The Last Watchdog
博客园_首页
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
美团技术团队
小众软件
小众软件
V
V2EX
博客园 - Franky
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
The GitHub Blog
The GitHub Blog
Microsoft Security Blog
Microsoft Security Blog
Attack and Defense Labs
Attack and Defense Labs
S
Security Affairs
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
T
The Exploit Database - CXSecurity.com
有赞技术团队
有赞技术团队
S
Schneier on Security
人人都是产品经理
人人都是产品经理
Security Archives - TechRepublic
Security Archives - TechRepublic
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
K
Kaspersky official blog
PCI Perspectives
PCI Perspectives
AI
AI
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
罗磊的独立博客
O
OpenAI News
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
V
Vulnerabilities – Threatpost
GbyAI
GbyAI
博客园 - 【当耐特】
C
Cisco Blogs
大猫的无限游戏
大猫的无限游戏
Help Net Security
Help Net Security
Google DeepMind News
Google DeepMind News
S
Securelist
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Proofpoint News Feed
博客园 - 三生石上(FineUI控件)
雷峰网
雷峰网
L
LangChain Blog
SecWiki News
SecWiki News
博客园 - 叶小钗
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
V2EX - 技术
V2EX - 技术
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
J
Java Code Geeks
L
LINUX DO - 热门话题
Cisco Talos Blog
Cisco Talos Blog

博客园 - 落叶潇潇雨

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

private static void Serialize1(string filename, object obj)

        {

            var stream = new FileStream(filename, FileMode.OpenOrCreate);

            var serializer = new DataContractSerializer(typeof (PackageManifest));

            serializer.WriteObject(stream, obj);

            stream.Close();

        }

当用以上方法,序列化一个对象后,用下面的反序列方法,发现有的文件居然不能反序列化,(PackageManifest 里面没有特殊对象,不然不会有的可以序列化,而有的不可以

 

private PackageManifest Deserialize( string manifestFilePath)

        {

            try

            {

                var serializer = new DataContractSerializer(typeof (PackageManifest ));

                var stream = new FileStream(manifestFilePath, FileMode.Open, FileAccess .Read);

                var manifestObject = serializer.ReadObject(stream) as PackageManifest;

                stream.Close();

                return manifestObject;

            }

            catch ( Exception ex)

            {

                return null;

            }

        }

然而,当我用格式化工具,将Serialize1序列化的对象格式化后,再来调用反序列化居然又可以了。 于是找到一个办法,Serialize的时候直接输出格式化的xml就没有问题了。

private static void Serialize2(string filename, object obj)

        {

            var ds = new DataContractSerializer(typeof (PackageManifest ));

            var settings = new XmlWriterSettings { Indent = true };

            using ( var writer = XmlWriter.Create(filename, settings))

            {

                ds.WriteObject(writer, obj);

            }

        }