再谈CLR:如何通过代码获取程序集所引用的程序集信息
上一篇我们提到过程序集引用的问题,通过反编译工具可以很方便地看到他们的引用关系。如下图所示
那么是否有办法在代码中进行查询得到这些信息呢?答案是肯定的,我们可以通过下面的简单代码就实现了
我们主要用到了反射技术
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Reflection; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { Assembly assembly = Assembly.GetExecutingAssembly(); Console.WriteLine("当前程序集所引用的程序集包括:"); foreach (var item in assembly.GetReferencedAssemblies()) { Console.WriteLine("名称:{0},版本:{1},公钥标记:{2}", item.Name, item.Version, Byte2String(item.GetPublicKeyToken())); } Console.Read(); } static string Byte2String(byte[] token) { StringBuilder sb = new StringBuilder(); for (int i = 0; i < token.GetLength(0); i++) { sb.Append(string.Format("{0:x}",token[i])); } return sb.ToString(); } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
2009-03-19 在数据库恢复之前将数据库置为单用户模式
2009-03-19 SQL Server 存储过程调用和参数运用