AssemblyExtension.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. using System.Reflection;
  2. namespace ServiceCenter.Extensions
  3. {
  4. /// <summary>
  5. /// 针对程序集操作的扩展
  6. /// </summary>
  7. public static class AssemblyExtension
  8. {
  9. /// <summary>
  10. /// 删除重复的程序集
  11. /// </summary>
  12. /// <param name="assemblies"></param>
  13. public static IEnumerable<Assembly> RemoveDuplicateAssemblies(this IEnumerable<Assembly> assemblies)
  14. {
  15. return assemblies.DistinctBy(p => p.FullName);
  16. }
  17. /// <summary>
  18. /// 删除指定名称的程序集
  19. /// </summary>
  20. /// <param name="assemblyNames"></param>
  21. /// <returns></returns>
  22. public static IEnumerable<AssemblyName> RemoveTheAssemblyNamespecified(this IEnumerable<AssemblyName> assemblyNames)
  23. {
  24. return assemblyNames.Where(p => p.Name != null && !p.Name.StartsWith("System."))
  25. .Where(p => !p.Name.StartsWith("mscorlib."))
  26. .Where(p => !p.Name.StartsWith("netstandard."))
  27. .Where(p => !p.Name.StartsWith("Senparc."))
  28. .Where(p => !p.Name.StartsWith("Newtonsoft."))
  29. .Where(p => !p.Name.StartsWith("UnityEngine."))
  30. .Where(p => !p.Name.StartsWith("ZKWeb."))
  31. .Where(p => !p.Name.StartsWith("NPOI."))
  32. .Where(p => !p.Name.StartsWith("ICSharpCode."))
  33. .Where(p => !p.Name.StartsWith("NLog"))
  34. .Where(p => !p.Name.StartsWith("e_sqlite"))
  35. .Where(p => !p.Name.StartsWith("MsgPack."))
  36. .Where(p => !p.Name.StartsWith("netstandard"))
  37. .Where(p => !p.Name.StartsWith("Jiguang"))
  38. .Where(p => !p.Name.StartsWith("StackExchange"))
  39. .Where(p => !p.Name.StartsWith("Microsoft."))
  40. .Where(p => !p.Name.StartsWith("TIBCO."));
  41. }
  42. }
  43. }