From de898d8d623fadf6c5f133bd4a069590bbe27dc2 Mon Sep 17 00:00:00 2001 From: dingsongjie Date: Thu, 20 Feb 2020 17:23:29 +0800 Subject: [PATCH] 优化 程序集查找 --- src/Pole.Core/Utils/AssemblyHelper.cs | 34 ++++++++++++++++++++-------------- 1 file changed, 20 insertions(+), 14 deletions(-) diff --git a/src/Pole.Core/Utils/AssemblyHelper.cs b/src/Pole.Core/Utils/AssemblyHelper.cs index 8c0c43b..0d1189d 100644 --- a/src/Pole.Core/Utils/AssemblyHelper.cs +++ b/src/Pole.Core/Utils/AssemblyHelper.cs @@ -10,22 +10,28 @@ namespace Pole.Core.Utils { public class AssemblyHelper { + private static IList Assemblies; public static IList GetAssemblies(ILogger logger = default) { - var libs = DependencyContext.Default.CompileLibraries.Where(lib => !lib.Serviceable); - return libs.Select(lib => - { - try - { - return AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); - } - catch (Exception ex) - { - if (logger != default) - logger.LogWarning(ex, ex.Message); - return default; - } - }).Where(assembly => assembly != default).ToList(); + if (Assemblies != null) + { + return Assemblies; + } + var libs = DependencyContext.Default.CompileLibraries.Where(lib => !lib.Serviceable && !lib.Name.StartsWith("Microsoft") && !lib.Name.StartsWith("System")); + Assemblies = libs.Select(lib => + { + try + { + return AssemblyLoadContext.Default.LoadFromAssemblyName(new AssemblyName(lib.Name)); + } + catch (Exception ex) + { + if (logger != default) + logger.LogWarning(ex, ex.Message); + return default; + } + }).Where(assembly => assembly != default).ToList(); + return Assemblies; } } } -- libgit2 0.25.0