zoukankan      html  css  js  c++  java
  • 反射学习笔记

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

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

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

    //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);

  • 相关阅读:
    Nagios显示器mysql定从库: libmysqlclient.so.18: cannot open shared object file: No such
    UVA 11402
    Oracle 11g 的PL/SQL函数结果缓存
    最大公约数(Greatest Common Divisor)
    计时器 Timer
    ArcGIS Engine 捕捉
    AE+C# 图层中增加相应属性标注
    C# ComboBox自动完成功能的示例
    Visual Assist的破解与安装
    GitHub的代码托管和使用方法
  • 原文地址:https://www.cnblogs.com/sunyunh/p/aboutReflection.html
Copyright © 2011-2022 走看看