首页 > 代码库 > 对象序列化和反序列化
对象序列化和反序列化
C#提供三种序列化的方法,与此有关的三个类分别是:BinarySerialize、SoapSerialize、XmlSerialize
以二进制的序列化和反序列化为例,先创建一个实体类Product。
View Code
重新ToString方法以便打印实体。
给实体赋值,在进行的序列化和反序列化之前进行都进行文件的压缩与解压,用的是GZipStream
List<Product> productList = new List<Product> { new Product(1, "orange", 1.0, "sales"), new Product(2, "Apple", 2.0, "cheap") }; foreach(Product product in productList) { Console.WriteLine(product); } Console.WriteLine("Please select your file"); FileStream fs = new FileStream("Product.ini", FileMode.Create, FileAccess.ReadWrite); GZipStream gzCompressed = new GZipStream(fs, CompressionMode.Compress); try { IFormatter serialize = new BinaryFormatter(); serialize.Serialize(gzCompressed, productList); gzCompressed.Close(); FileStream fsRead = new FileStream("Product.ini", FileMode.Open, FileAccess.Read); GZipStream gzDecompressed = new GZipStream(fsRead, CompressionMode.Decompress); List<Product> deProductList = serialize.Deserialize(gzDecompressed) as List<Product>; gzDecompressed.Close(); foreach (Product product in deProductList) { Console.WriteLine(product); } } catch (SerializationException se) { Console.WriteLine(se.Message); } catch(IOException io) { Console.WriteLine(io.ToString()); }
对象序列化和反序列化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。