zoukankan      html  css  js  c++  java
  • GetExecutingAssembly() 和 GetCallingAssembly() 的区别

    在TCX_1710项目代码的启动项目根目录路径下的Global.asax.cs配置文件中的MVCApplication类中的Application_Start()方法中,配置了项目启动时要加载的项目信息。第一项便是“AppServiceFactory.RegisterServices();”注册所有实现类(该方法为静态方法)。

    F12进入方法之后为该方法的具体实现,第一步便是Assembly.GetExecutingAssembly(),获取当前方法坐在的程序集;第二步调用别的方法;

    那么“Assembly.GetExecutingAssembly()”的值到底是什么呢?打个断点调试一下,结果如下图所示

    故,也就是说,“Assembly.GetExecutingAssembly()”这句代码表示,当前方法(RegisterServices()方法)所在的程序集为“Ace”程序集。

    到底是不是"Ace"程序集呢?会过头看看就知道了,如下图所示。

    命名空间为“Ace.Application”,注意"Application"只是"Ace"程序集下的一个文件夹而已,真正的程序集就是“Ace”!!!

     那么“GetCallingAssembly()”又是什么呢?试一试就知道了

    将“Assembly assembly = Assembly.GetExecutingAssembly();”修改为“Assembly assembly = Assembly.GetCallingAssembly();”打个断点,结果如下图所示。

    也就是说,“Assembly.GetCallingAssembly();”这句代码表示,【调用当前方法(当前方法为RegisterServices()方法)的方法】(调用当前方法的方法为Application_Start()方法)所在的程序集为“DoMes.Web”

    总结 :

    Assembly.GetExecutingAssembly():当前方法所在程序集

    Assembly.GetCallingAssembly():调用当前方法的方法 所在的程序集

  • 相关阅读:
    走下神坛的内存调试器
    mysql在高内存、IO利用率上的几个优化点 (sync+fsync) 猎豹移动技术博客
    跃趣科技
    java 类型转换:
    ab ApacheBench web测试工具
    使用EPEL和REMI第三方yum源
    “too many open files" ----增大打开的文件数
    Tcpdump命令行 与 GUI Wireshark
    gcc -I -L -l区别
    rsyslog 报 WARNING: rsyslogd is running in compatibility mode.
  • 原文地址:https://www.cnblogs.com/luna-hehe/p/10142159.html
Copyright © 2011-2022 走看看