C#中Assembly3个获取路径的方法

        在C#中,经常要获取路径 ,可以通过Assembly的三个重载方法来获取,如下所示这三个分别是GetCallingAssembly、GetEntryAssembly和GetExecutingAssembly。

            string tmpEntryPath = Assembly.GetEntryAssembly().Location;string tmpExeasmPath = Assembly.GetExecutingAssembly().Location;string tmpCallasmPath = Assembly.GetCallingAssembly().Location;

1.系统注释 

 GetEntryAssembly()

        //// 摘要://     获取默认应用程序域中的进程可执行文件。 在其他的应用程序域中,这是由 System.AppDomain.ExecuteAssembly(System.String)//     执行的第一个可执行文件。//// 返回结果://     程序集是默认应用程序域中的进程可执行文件,或是由 System.AppDomain.ExecuteAssembly(System.String) 执行的第一个可执行文件。//     当从非托管代码调用时可返回 null。[SecuritySafeCritical]public static Assembly GetEntryAssembly();

 GetExecutingAssembly()

        //// 摘要://     获取包含当前执行的代码的程序集。//// 返回结果://     包含当前执行的代码的程序集。[SecuritySafeCritical]public static Assembly GetExecutingAssembly();

GetCallingAssembly() 

        //// 摘要://     返回方法(该方法调用当前正在执行的方法)的 System.Reflection.Assembly。//// 返回结果://     方法(该方法调用当前正在执行的方法)的 Assembly 对象。[SecuritySafeCritical]public static Assembly GetCallingAssembly();

2.白话解释 

        GetEntryAssembly获取的是当前应用程序第一个启动的程序,一般就是xxx.exe文件。
GetExecutingAssembly获取的是当前执行的方法所在的程序文件,可能是.exe,也可能是当前方法所在的.dll文件。

        如一个程序MyApp.exe,在程序中引用了MyDll.dll类库,而在MyDll.dll中有一个MyInfo方法,MyInfo调用了MyDll2.dll中的MyInfo2方法,那么结果如下:

  • 在MyApp.exe调用任何一个方法,获得的都是MyApp.exe的程序集信息。

  • 通过MyApp调用MyDll.MyInfo方法时,在MyDll.MyInfo中:

            执行GetEntryAssembly,获得的是MyApp.exe的程序集信息。
            执行GetExecutingAssembly,获得的是MyDll.dll的程序集信息。
            执行GetCallingAssembly,获得的是MyApp.exe的程序集信息。

  • 通过MyDll的方法调用MyDll2.MyInfo2方法时:

            执行GetEntryAssembly,获得的是MyApp.exe的程序集信息。
            执行GetExecutingAssembly,获得的是MyDll2.dll的程序集信息。
            执行GetCallingAssembly,获得的是MyDll.dll的程序集信息。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/55039.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32CubeIDE使用ADC采用DMA重大BUG

问题描述 STM32CubeIDE 1.8.0问题 大牛攻城狮最近调试STM32L151CBT6。由于项目上使用该款芯片做控制电源使用,其中涉及到多路ADC的数据采样。使用STM32CubeIDE 1.8.0版本详细如下图所示 这里大概率是STM32CubeMX版本太低了,从图上看才是6.4.0 注意这里…

五、UI弹窗提示

一、制作弹窗UI 二、创建脚本 1、继承WindowRoot(UI基类) 获取UI上面的组件 2、初始化 将这个文本失活 3、写一个提示出现的方法 这个派生类中,继承了基类的两个方法,设置显示和设置文本 对应基类的这两个方法 将动画赋值给动…

25.1 降低采集资源消耗的收益和无用监控指标的判定依据

本节重点介绍 : 降低采集资源消耗的收益哪些是无用指标,什么判定依据 通过 grafana的 mysql 表获取所有的 查询表达式expr通过 获取所有的prometheus rule文件获取所有的 告警表达式expr通过 获取所有的prometheus 采集器接口 获取所有的采集metrics计算可得到现在…

机器学习、深度学习评价指标汇总:TP、TN、FP、FN、AP、mAP、IoU、mAP@3、Prec@10、 Acc@10

系列文章目录 文章目录 系列文章目录一、真正例(True Positive)、假正例(False Positive)、真负例(True Negative)和假负例(False Negative)是评估分类模型性能的重要概念。1. 定义2…

前端学习-css的元素显示模式(十五)

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 什么是元素显示模式 块元素 常见的块元素 块元素的特点 注意 行内元素 行内元素的特点 注意 行内块元素 行内块元素的特点 元素显示模式的转换 语法格…

MySQL 删除数据库

1.使用命令行删除一个数据库 1.1 首先登陆进入 MySQL 操作界面,命令如下: 命令 : mysql -utest -p;1.2 登陆成功之后可以使用如下命令查看当前已有数据库: 命令 : SHOW DATABASES; 执行结果如下图: 如图所示当前已包含 MySQL 系统数据库和…

盛元广通化学实验室样品LIMS管理系统

盛元广通化学实验室样品LIMS管理系统旨在提高实验室样品管理的效率、准确性和可追溯性。通过自动化和智能化的手段,系统能够简化样品管理流程,减少人为错误,确保样品的安全性和完整性。样品管理的具体实施方法包括样品接收与登记、样品储存与…

「Ubuntu」文件权限说明(drwxr-xr-x)

我们在使用Ubuntu 查看文件信息时,常常使用 ll 命令查看,但是输出的详细信息有些复杂,特别是 类似与 drwxr-xr-x 的字符串,在此进行详细解释下 属主:所属用户 属组:文件所属组别 drwxr-xr-x 7 apps root 4…

基于SSM的商场鞋店管理系统的设计与实现

文未可获取一份本项目的java源码和数据库参考。 题目简介: 服装鞋帽在我国的国民经济的发展中有着重要的地位,是发展规模较为宏大的行业。随着我国制鞋企业的发展和规模的扩大,经营区域分散,传统的管理模式严重制约了企业的快速…

非洲秃鹫算法(AVOA)的MATLAB代码复现

目录 1 非洲秃鹫算法优化BP神经网络代码复现 2 非洲秃鹫算法优化支持向量机代码复现 3 非洲秃鹫算法优化长短期记忆神经网络代码复现 1 非洲秃鹫算法优化BP神经网络代码复现 1)单输出回归预测:单输出回归预测:非洲秃鹫算法优化BP神经网络…

华为Eth-trunk链路聚合加入到E-trunk实现跨设备的链路聚合

一、适用场景(注:e-trunk与eth-trunk是2个不同的概念) 1、企业中有重要的server服务器业务不能中断的情况下,可将上行链路中的汇聚交换机,通过eth-trunk链路聚合技术,实现链路故障后,仍有可用的…

灵当CRM data/pdf.php 任意文件读取漏洞复现

0x01 产品简介 灵当CRM是一款专为中小企业打造的智能客户关系管理工具,由上海灵当信息科技有限公司开发并运营。广泛应用于金融、教育、医疗、IT服务、房地产等多个行业领域,帮助企业实现客户个性化管理需求,提升企业竞争力。无论是新客户开拓、老客户维护,还是销售过程管…

vue3 高德地图标注(飞线,呼吸点)效果

装下这两个 npm 忘了具体命令了&#xff0c;百度一下就行 “loca”: “^1.0.1”, “amap/amap-jsapi-loader”: “^1.0.1”, <template><div id"map" style"width: 100%;height: 100%;"></div> </template><script setup> …

Cesium 区域高程图

Cesium 区域高程图 const terrainAnalyse new HeightMapMaterial({viewer,style: {stops: [0, 0.05, 0.5, 1],//颜色梯度设置colors: [green, yellow, blue , red],}});

NVIDIA Bluefield DPU上的启动流程4个阶段分别是什么?作用是什么?

文章目录 Bluefield上的硬件介绍启动流程启动流程&#xff1a;eMMC中的两个存储分区&#xff1a;ATF介绍ATF启动的四个阶段&#xff1a; 四个主要步骤&#xff1a;各个阶段依赖的启动文件 一次烧录fw失败后的信息看启动流程综述 Bluefield上的硬件介绍 本文以Bluefield2为例&a…

计算机是如何输入存储输出汉字、图片、音频、视频的

计算机是如何输入存储输出汉字、图片、音频、视频的 为了便于理解&#xff0c;先了解一下计算机的组成。 冯诺依曼计算机的五大组成部分。分别是运算器、控制器、存储器、输入设备和输出设备。参见下图&#xff1a; 一、运算器 运算器又称“算术逻辑单元”&#xff0c;是计算…

SQLI LABS | SQLI LABS 靶场初识

关注这个靶场的其它相关笔记&#xff1a;SQLI LABS —— 靶场笔记合集-CSDN博客 0x01&#xff1a;SQLI LABS 靶场简介 SQLi-Labs 靶场是一个专门用于学习和测试 SQL 注入漏洞的开源靶场&#xff0c;该靶场提供了多个具有不同漏洞类型和难度级别的 Web 应用程序的环境。这些应用…

Facebook减肥产品广告投放攻略

有不少刚开始投放facebook广告的小伙伴会感到疑惑&#xff0c;为什么别人的减肥产品跑的风生水起&#xff0c;销量羡煞旁人&#xff0c;自己的广告要不就是被拒要不就是没有流量&#xff0c;甚至还可能被封号&#xff0c;如果你也有这样的困扰&#xff0c;那一定要看完这篇文章…

图片颜色通道提取

目录 读取和显示图像分离和合并颜色通道通道分离显示总结 读取和显示图像 import cv2def img_show(name, img):"""显示图片:param name: 窗口名字:param img: 图片对象:return: None"""cv2.imshow(name, img)cv2.waitKey(0)cv2.destroyAllWindow…

机器视觉AI场景为什么用Python比C++多?

好多开发者在讨论机在机器视觉人工智能领域的时候&#xff0c;纠结到底是用Python还是C&#xff0c;实际上&#xff0c;Python 和 C 都有广泛的应用&#xff0c;选择 Python而不是 C 可能有以下一些原因&#xff1a; 语言易学性和开发效率 语法简洁&#xff1a; Python 语法简…