反射学习笔记

本文详细介绍了反射的概念及应用,包括如何通过程序集加载、获取类型、动态创建对象实例、调用方法等步骤,深入理解.NET平台下反射的工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

反射的定义:有关程序及其类型的数据成为元数据,一个运行的程序查看本身或者其他应用程序的元数据的行为成为反射。

反射的理解:其实反射就是通过程序集来动态创建对象。

以下是通过反射来实现动态创建对象的过程:

//1.加载程序集文件            

 Assembly asm = Assembly.LoadFile(@"D:\ClassLibrary1.dll");     

   //以下是两种不同的加载程序集的方式,一种不带扩展名,  一种带了扩展名

         //Assembly.Load(程序集的名称);     

        //Assembly.LoadFrom(程序集的文件名.dll);   

 //2.通过程序集获取程序集中Person对象的类型,注意:全路径:命名空间.类名           

  Type type = asm.GetType("ClassLibrary1.Person");           

  //3.动态创建类型的实例         

    Object o = Activator.CreateInstance(type, new Object[] { "lucy", 18, '女' }); // 调用Person类的构造方法

  //4.通过类型得到类型的方法 ,其中Func为方法名          

   MethodInfo m = type.GetMethod("Func");

   //5.与动态创建的类型的实例绑定,并且通过Invoke执行实例的方法      

    //其中o为通过反射动态创建的对象,null表示要执行方法的参数,这里不带参数。

      m.Invoke(o, null);

转载于:https://www.cnblogs.com/sunyunh/archive/2012/02/19/aboutReflection.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值