目录:

一. 反射的主要特性

  1.反射中一个非常重要的类型就是 Type

    1)当没有对象的时候使用这种方式来获取某个类型的Type

    2)当已经获得对象后通过对象的GetType()方法来获取指定对象的类型的Type对象

  2.获取Person类中的所有的方法

  3.获取某个类型的所有属性

  4.获取类中的所有字段,私有字段无法获取

  5.获取所有成员,不包含私有成员

二. 反射动态加载程序集

  1.动态加载一个程序集

  2.获取刚刚加载的程序集中的所有的类型

    1)GetTypes()获取了所有的类型

    2)只获取那些public的类型

  3.获取程序集中某个类的Type

  4.动态调用类的方法

    1)调用无参数无返回值的方法

    2) 调用带参数,带返回值的方法

      1> 调用不带重载的方法

      2>调用带重载的方法

  5. 通过反射获取类的属性,并赋值

    1)获取Name属性

    2)为属性赋值

    3) 获取属性值

    4)获取方法并调用

  6.手动查找类型的构造函数,并且调用该构造函数来创建类型的对象

三. 其他的反射中的一些方法

  1. bool IsAssignableFrom(Type c) 判断当前的类型的变量是不是可以接受c类型变量的赋值

  2. bool IsInstanceOfType(object o):判断对象o是否是当前类的实例(当前类可以是o的类、父类、接口)

  3. bool IsSubclassOf(Type c):判断当前类是否是类c的子类

  4. IsAbstract 判断是否为抽象的,含接口

————————————————————————————————————————————————————————————————————————————

 

反射是什么?

反射:通过动态获取程序集,并获取其中的类型元数据,然后访问该类型的过程。

一. 反射的主要特性

在介绍反射的主要特性之前我们先建一个Person类(下面都是对Person类进行操作)

    class Person
    {

        public int _height;

        public string Name { get; set; }
        public int Age { get; set; }
        public string Email { get; set; }

        public void Say()
        {
            Console.WriteLine("Hello everyone!");
        }


        public void SayMorning()
        {
            Console.WriteLine("Good morning everybody!");
        }

        //私有的
        void Do()
        {
            Console.WriteLine("Just do it!");
        }
    }
View Code

相关文章: