MSDN官方XmlSerializer类使用说明链接:
http://msdn.microsoft.com/zh-CN/library/system.xml.serialization.xmlserializer(v=VS.100).aspx

动态生成的程序集

为了提高性能,XML 序列化基础结构动态生成程序集,以便对指定类型进行序列化和反序列化。 该基础结构将找到并重新使用这些程序集。 仅当使用以下构造函数时,才会发生此行为:

XmlSerializer.XmlSerializer(Type)

XmlSerializer.XmlSerializer(Type, String)

如果使用任何其他构造函数,则将生成同一个程序集的多个版本,这些版本始终不予卸载,从而导致内存泄漏和性能低下。 最简单的解决方案是使用前面提到的两个构造函数中的一个。 否则,必须在 Hashtable 中缓存程序集,如下面的示例所示。

Hashtable serializers = new Hashtable();

// Use the constructor that takes a type and XmlRootAttribute.
XmlSerializer s = new XmlSerializer(typeof(MyClass), myRoot); // Implement a method named GenerateKey that creates unique keys
// for each instance of the XmlSerializer. The code should take
// into account all parameters passed to the XmlSerializer
// constructor.
object key = GenerateKey(typeof(MyClass), myRoot); // Check the local cache for a matching serializer.
XmlSerializer ser = (XmlSerializer)serializers[key];
if (ser == null)
{
ser = new XmlSerializer(typeof(MyClass), myRoot);
// Cache the serializer.
serializers[key] = ser;
}
else
{
// Use the serializer to serialize, or deserialize.
}

最新文章

  1. 隐私泄露杀手锏 —— Flash 权限反射
  2. maven中classpath路径(转)
  3. 【Python实战】Django建站笔记
  4. Mysql的视图、存储过程、函数、索引全解析
  5. autofac 使用
  6. 如何重置CentOS 7的Root密码?设置CentOS 7的Root密码的方法与步骤
  7. An Introduction to Garbage Collection(垃圾回收简介)
  8. 写了个pager, 可供参考
  9. 关于JSP的C标签之forEach循环分隔符
  10. Android Environment FAQ (Frequently Asked Question)
  11. ThreadLocal的几种误区
  12. 影响pogo pin连接器使用寿命的因素
  13. ORA-01461: 仅能绑定要插入 LONG 列的 LONG 值
  14. text-overflow:ellipsis 的应用(转载)
  15. Java获取Object属性值
  16. Java Socket输入流如何检测到EOF
  17. Excel Foundation Install
  18. 爬虫-----selenium模块自动爬取网页资源
  19. CV迅速发展
  20. 音视频编解码: YUV存储格式中的YUV420P,YUV420SP,NV12, NV21理解(转)

热门文章

  1. FPGA 设计流程,延迟,时间
  2. ACM算法
  3. MVC中的Repository模式
  4. java-新浪微博开放平台——话题跟踪
  5. ReactJS.NET 开发
  6. duplicate symbol _*** in:
  7. C和指针 (pointers on C)——第一章:高速启动
  8. Android实现“是否退出”对话框和“带图标的列表”对话框
  9. UI 收集
  10. JAVA学习篇--Java类加载