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

  • 相关阅读:
    小程序中上传图片并进行压缩
    vue在传值的时候经常遇到的问题
    【H5】移动开发 rem
    【入门】Less 知识点整理
    【入门】前后端交互
    原型对象、原型链
    跨域-jsonp、cors、iframe、document.domain、postMessage()
    css水平垂直居中
    localStorage、sessionStorage、cookie、session
    vue中父组件调用子组件函数
  • 原文地址:https://www.cnblogs.com/sunyunh/p/aboutReflection.html
Copyright © 2011-2022 走看看