zoukankan      html  css  js  c++  java
  • C# 程序集 与 反射

    程序集

      对于C#程序员来说一定不陌生,不就是VS生成的那些exe,dll么。是的,程序集(.net中exe与dll的区别就是exe有程序接入口,即Main函数)就是.net框架下,可以被CLR加载并运行的一堆数据集(类似java中的jar包,无法脱离虚拟机自己运行)。它们和之前CC++生成的可执行程序和动态链接库有本质的区别。

        说了半天,程序集里到底有什么呢。作为一堆数据集,程序集的数据可以分为:类型元数据,程序元数据,IL代码,资源。

        先说下什么是元数据,元数据一般就是指描述自身的数据。

        程序集元数据:包含程序集的版本信息,安全信息,签名等。

        类型元数据:记录了程序集将引用了哪些类,用户自定义了哪些类,字段,数据类型等一系列信息(VS的编程助手靠的就是反射获取类型元数据)。

        IL代码:MSIL,微软中间语言,微软跨语言的根基所在,所有的C#代码都编译成IL代码,保存在程序集中,在被CLR加载后,由JIT调用BCL,FTL即时编译成机器码来让CPU运行。

        资源:图片,视频,音频不一而足。

    反射

       学C#的好多人都提反射色变,觉得这是个很高级的东西。好吧,反射使用的技术的确高级,但是我们应用起来却是非常的容易,微软体贴的优点在这时候就凸显出来了。

          其实反射很简单,它的本质就是去在运行时动态的加载程序集,找出并能得到程序集中包含什么类,方法,属性 和字段,并且去调用这些类,方法,属性和字段。

         反射常用的类:
      
        Assembly  加载程序集用
        Type      核心类,反射调用获得的类就靠是它保存的

  • 相关阅读:
    Service Name Port Number Transport Protocol tcp udp 端口号16bit
    linux linux 互传文件 win 不通过 ftp sftp 往linux 传文件(文件夹)
    soft deletion Google SRE 保障数据完整性的手段
    Taylor series
    Taylor's theorem
    Moving average
    REQUEST
    Unix file types
    mysqld.sock
    Tunneling protocol
  • 原文地址:https://www.cnblogs.com/tonnytong/p/3909425.html
Copyright © 2011-2022 走看看