zoukankan      html  css  js  c++  java
  • 再谈CLR:如何通过代码获取程序集所引用的程序集信息

    上一篇我们提到过程序集引用的问题,通过反编译工具可以很方便地看到他们的引用关系。如下图所示

    image

    那么是否有办法在代码中进行查询得到这些信息呢?答案是肯定的,我们可以通过下面的简单代码就实现了

    我们主要用到了反射技术

    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();
            }
    
    
        }
    }
     
    image 
    
  • 相关阅读:
    微信小程序UI自动化: minium文档部署02
    微信小程序UI自动化: 选择工具/框架01
    gitalb学习:02gitlab runner安装
    gitlab学习: 01安装gitlab
    01.Python中一切皆对象
    Prometheus+Noe Expoter+Grafana:资源监控初体验(基于cenots7,没使用docker)
    01. 判断三角形的函数
    Locust性能测试:上手初体验
    史上最全的邮箱测试方法!
    使用 Python 处理非对称加密,竟然如此简单
  • 原文地址:https://www.cnblogs.com/chenxizhang/p/1689602.html
Copyright © 2011-2022 走看看