[Serializable]public class Student{public string Name { get; set; }public int Sex { get; set; }public int Age { get; set; }public Address Address { get; set; }}[Serializable]public class Address{public string City { get; set; }public string Road { get; set; }}
上述代码中我们在类的头部加入了 Serializable 特性,这代表着整个类对象都需要序列化,如果我们不需要序列化其中某个属性的话只需在该属性上加上 NonSerialized 特性即可 。下面我们来看一下序列化和反序列化的代码:
class Program{static void Main(string[] args){#region 序列化Student student = new Student{Name = "Tom",Age = 20,Sex = 1,Address = new Address{City = "NYC",Road = "ABC"}};BinaryFormatter binFormat = new BinaryFormatter;string fileName = Path.Combine(@"D:", @"321.txt");using (Stream fStream = new FileStream(fileName, FileMode.Create, FileAccess.ReadWrite)){binFormat.Serialize(fStream, student);}#endregion#region 反序列化using (Stream fStream = new FileStream(fileName, FileMode.Open, FileAccess.ReadWrite)){fStream.Position = 0;student = (Student)binFormat.Deserialize(fStream);}Console.WriteLine("Name: " + student.Name);Console.WriteLine("Sex: " + student.Sex);Console.WriteLine("Age: " + student.Age);Console.WriteLine("Address: " + student.Address.City + " " + student.Address.Road);#endregionConsole.ReadLine;}}
上述代码最终输出结果如下:
文章插图
3.总结这篇文章详细讲解了.NET中序列化和反序列化相关知识的使用,序列化和反序列化相关的只是还有很多,这里所讲解的都是开发中经常用到的,也是面试过程中会提及的,因此大家需要牢记 。
作者简介:朱钢,笔名喵叔,CSDN博客专家,.NET高级开发工程师,7年一线开发经验,参与过电子政务系统和AI客服系统的开发,以及互联网招聘网站的架构设计,目前就职于北京恒创融慧科技发展有限公司,从事企业级安全监控系统的开发 。
声明:本文系作者独立观点,不代表CSDN立场 。
【开发者应当熟知的 C# 序列化和反序列化】
推荐阅读
- Android开发者,是时候了解LeakCanary了
- 木瓜可以降血糖吗?
- 安溪铁观音茶叶中的汤水应当如何审评
- 公司注销后,员工发现自身权益受到侵害的,应当向谁主张权利?
- 员工请假偷偷去面试,管理者应当如何处理?
- php开发编辑器有哪些?
- 国内仓收到快递出现包装破损的处理办法是? 快递企业在收寄快件时,应当
- 春季是减肥瘦身好时机 熟知减肥技巧轻松瘦
- Android 开发者必会的内存泄漏指南
- 销售散装食品无标签如何处罚 食品经营者销售散装食品应当在标签上标明