深入.net平台和C#编程(序列化和反射)

Posted 我是一个小白.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了深入.net平台和C#编程(序列化和反射)相关的知识,希望对你有一定的参考价值。

序列化和反序列化

       序列化和反序列化是将对象的状态存储到特定存储介质的过程

命名空间

       using System.Runtime.Serialization.Formatters.Binary;

在类的头部添加[Serializable],表示该类可序列化

Using方法:

前提有实现接口

using自动释放

读写器.推荐使用file类的方法

序列化固定写法:

              序列化类

BinaryFormatter BF = new BinaryFormatter();

创建文件流,给如指定地址

using (FileStream Fs=new FileStream("E:/XUE.txt",FileMode.Create))

{

    将数据流传入和要进行保存的集合

     BF.Serialize(Fs,Items);

}

    反序列化固定写法:

BinaryFormatter BF = new BinaryFormatter();

using (FileStream Fs=new FileStream("E:/XUE.txt",FileMode.open))

{

    var Zi = BF.Deserialize(fs) as List<Xu>;

    foreach(var Item in zi){循环遍历即可}

}

    反射

         命名空间:System.refleection

         通过反射的方法,可以遍历成员,并调用成员

        反射二种情景:加载时调用,编译时调用

    程序集:Assembly

         注意:通过程序集创建对象(object类型的数据,是我们想要反射的数据)

    方法

             字段

         Getfields()获取全部公共字段

         Getfield()搜索指定字段

             属性

         Getproperties()获取全部公共属性

         Getproperty()搜索指定属性

             方法

         Getmethods()获取全部公共方法

         Getmenthod()搜索指定方法

        博主写的方法都是常用的,固定语法,希望对你们有所帮助吧!

        加油,共勉

以上是关于深入.net平台和C#编程(序列化和反射)的主要内容,如果未能解决你的问题,请参考以下文章

《深入.NET平台和C#编程》--题型释疑

S2深入.NET编程总结

紧凑 .net 和常规 .net 之间的 C# 序列化/反序列化

使用反射确定 .Net 类型在内存中的布局方式

深入.NET内测题

C#规范整理·资源管理和序列化