.NET框架中的XML:XmlSerializer的内部原理是什么

本篇内容介绍了“.NET框架中的XML:XmlSerializer的内部原理是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

专注于为中小企业提供成都网站设计、做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业吴忠免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了近千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

XmlSerializer 的内部原理

有了 CodeDom 以后,可以为追求自定义的开发人员带来大量能力和灵活性,但同时也带来了更大的责任。以这种方式修改代码会有危险,因为这会使代码不再按与架构兼容的方式进行序列化,或者 XmlSerializer 功能被完全破坏,并针对意外的节点和特性引发异常,从而无法检索值,等等。

因此,在处理生成的代码之前,绝对需要了解 XmlSerializer 的内部原理,当然也就需要一种了解其内部原理的方法。

当对象即将进行 XML 序列化时,将通过反射您传递给 XmlSerializer 构造函数的类型来创建一个临时程序集(这就是您需要那么做的原因)。请等一下!不要因为“反射”一词而感到害怕!这对于每个类型只执行一次,并且在 AppDomain 生命期内,将创建一对极为有效的 Reader 和 Writer 类来处理序列化和反序列化。

这些类继承了 System.Xml.Serialization 命名空间中的 XmlSerializationReader 和 XmlSerializationWriter 公共类。它们还是 [TheTopSecretClassName]。如果您希望看一下这些动态生成的类,您只需向应用程序配置文件(对于 Web 应用程序,为 web.config)中添加以下设置:

< system.diagnostics> < switches> < add name="XmlSerialization.Compilation" value="4"/> < /switches> < /system.diagnostics>

现在,序列化程序将不会删除在该过程中生成的临时文件。对于 Web 应用程序,这些文件将位于 C:\Documents and Settings\[YourMachineName]\ASPNET\Local Settings\Temp 中;或者,它们将位于当前用户的 Local Settings\Temp 文件夹中。

您将看到的代码就是当您希望有效地加载 .NET 中的 XML 时需要编写的代码:使用嵌套的 while 和 if 语句进行读取,使用 XmlReader 方法在数据流中向下移动,等等。使用这些丑陋代码的目的就是使该处理过程真正地快起来。

还可以通过使用 Chris Sells 的 XmlSerializerPreCompiler 工具来诊断所生成的这些类中的问题。

“.NET框架中的XML:XmlSerializer的内部原理是什么”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


网站标题:.NET框架中的XML:XmlSerializer的内部原理是什么
标题链接:http://scyanting.com/article/pescee.html