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():调用当前方法的方法 所在的程序集

  • 相关阅读:
    PostgreSQL数据库中的常见错误
    postgresql相关命令
    Linux系统查看公网IP地址
    TCP/IP TIME_WAIT状态原理
    TCP连接状态详解及TIME_WAIT过多的解决方法
    让你提升命令行效率的 Bash 快捷键 [完整版]
    linux 如何显示一个文件的某几行(中间几行)
    linux中内核的一个不错的参数somaxconn
    Linux crontab 实现每秒执行
    Linux tar This does not look like a tar archive
  • 原文地址:https://www.cnblogs.com/luna-hehe/p/10142159.html
Copyright © 2011-2022 走看看