AssemblyExtension.cs 1.9 KB

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