zoukankan      html  css  js  c++  java
  • 一堆DLL中找一个类

    using System;
    using System.Collections.Generic;
    using System.IO;
    using System.Reflection;
    using System.Linq;

    namespace SampleConsole
    {
    class Program
    {
            static void Main(string[] args)
            {
                string find = "SessionState";
                string dir = @"D:\project\website\XXX\website\XXX.Core\trunk\Lib\Dll";
                new DirectoryInfo(dir)
                    .EnumerateFiles("*.dll"SearchOption.AllDirectories)
                    .AsParallel()
                    .Select(f => f.FullName)
                .Select(p =>
                {
                    try
                    {
                        return new
                        {
                            Path = p.ToLower().Replace(dir.ToLower(), string.Empty),
                            Assembly = Assembly.LoadFrom(p)
                        };
                    }
                    catch (BadImageFormatException) { return null; }
                }).Where(x => x != null)
                .Select(x =>
                    {
                        try
                        {
                            return new
                            {
                                Path = x.Path,
                                Types = x.Assembly.GetTypes().AsParallel()
                                        .Select(t => t.FullName)
                                        .Where(s => s.IndexOf(find) > -1)
                            };
                        }
                        catch (ReflectionTypeLoadException) { return null; }
                    }).Where(x => x != null && x.Types.Count() > 0)
                    .ToList()
                    .ForEach(x =>
                        Console.WriteLine(x.Path + "\n" + x.Types.Aggregate((a, b) => a + "\n" + b) + "\n\n")
                        );
            }
    }
    }
  • 相关阅读:
    Optional int parameter 'id' is present but cannot be translated into a null value due to being decla
    Interllij IDEA 使用Git工具
    Interllij IDEA 注释模板(类和方法)
    Intellij IDEA 去掉Mapper文件中的背景
    Interllij IDEA常用快捷键
    JSTL <c:if test=“eq ne lt..”></if> 用法
    启动Tomcat报错 “A child container failed during start”
    服务器证书日期无效 SSL_DATE_INVALID
    window 计算机 开启事务
    MVC Model验证疑难杂症
  • 原文地址:https://www.cnblogs.com/goodspeed/p/1787079.html
Copyright © 2011-2022 走看看