c# 序列化和反序列化
时间: 2023-10-29 07:06:47 浏览: 215
C#中的序列化和反序列化是将对象转换为字节流或将字节流转换为对象的过程。在序列化过程中,对象的状态被转换为字节流,以便在网络上传输或保存到磁盘上。在反序列化过程中,字节流被转换回对象的状态。C#提供了多种序列化方式,包括二进制序列化、XML序列化和JSON序列化等。其中,二进制序列化是最常用的一种方式,它可以将对象序列化为二进制格式的字节流,也可以将字节流反序列化为对象。
在进行序列化和反序列化时,需要注意以下几点:
1. 要将序列化和反序列化使用相同的格式化器。
2. 序列化时,类型的全名和类型定义程序集的全名会被写入流。
3. 反序列化时,格式化器会首先获取程序集标识信息,通过调用反射的Load方法确保程序集已加载到正在执行的AppDomain中。
4. 找不到匹配类型就抛出异常,并不再继续反序列化。
5. 类型中的字段与流中读取的字段名不完全匹配,就抛出SerializtionException异常,并不再继续反序列化。
阅读全文