• 从invoke简单理解反射


    前言 程序集   :

    程序集是.NET应用程序的基本单位,包含了程序的资源、类型元数据和MSIL代码。根据程序集生成方式的不同,可分为静态程序集和动态程序集。程序集又可分为单文件程序集和多文件程序集,多文件程序集将程序集中的文件按类型组织到多个文件中。每个程序集,无论是静态的还是动态的,均包含描述该程序集中各元素彼此如何关联的数据集合,程序集清单就包含这些程序集元数据。程序集还可以进行版本控制和强名称等安全设置。

    反射提供了封装程序集、模块和类型的对象(Type 类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了属性,可以利用反射对它们进行访问。

    2.1.1  模块的操作

    程序集由模块组成,每个程序集可以包含至少一个模块。每一个模块就是一个标准的PE文件(见第1章)。接下来,我们学习使用编译器来进行模块的生成、设置等基本操作。

    invoke 就是根据反射原理,调用方法:

    System.Web.UI.Page p = this.Page;(获取this.Page)

    Type pageType = p.GetType();(反射原理获取Type 类型)

    MethodInfo mi = pageType.GetMethod("BindAdsToPageByLocator");(反射原理根据方法名“BindAdsToPageByLocator”找到这个方法)

    DataTable dt = (DataTable)mi.Invoke(p, new object[] { 0, 0, code});   (“0, 0, code”为方法“BindAdsToPageByLocator”所需的参数,返回datatable类型)

  • 相关阅读:
    js与jquery常用数组方法总结
    js 对象深复制,创建对象和继承
    Web前端面试常识
    jQuery插件开发之boxScroll与marquee
    jQuery插件开发之windowScroll
    《将博客搬至CSDN》
    蓝桥杯 翻硬币
    AcWing 756.蛇形矩阵
    货仓选址
    费解的开关
  • 原文地址:https://www.cnblogs.com/juexin/p/3195232.html
Copyright © 2020-2023  润新知