From aa7026a17ededf7c181ed269c6388491d96e1b1e Mon Sep 17 00:00:00 2001 From: "Emma@Rory&" Date: Mon, 14 Aug 2023 05:07:51 +0200 Subject: Split LibMatrix into submodule --- MatrixRoomUtils.Core/Extensions/ClassCollector.cs | 22 ---------------------- 1 file changed, 22 deletions(-) delete mode 100644 MatrixRoomUtils.Core/Extensions/ClassCollector.cs (limited to 'MatrixRoomUtils.Core/Extensions/ClassCollector.cs') diff --git a/MatrixRoomUtils.Core/Extensions/ClassCollector.cs b/MatrixRoomUtils.Core/Extensions/ClassCollector.cs deleted file mode 100644 index d4ba838..0000000 --- a/MatrixRoomUtils.Core/Extensions/ClassCollector.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System.Reflection; - -namespace MatrixRoomUtils.Core.Extensions; - -public class ClassCollector where T : class { - static ClassCollector() { - if (!typeof(T).IsInterface) - throw new ArgumentException( - $"ClassCollector must be used with an interface type. Passed type: {typeof(T).Name}"); - } - - public List ResolveFromAllAccessibleAssemblies() => AppDomain.CurrentDomain.GetAssemblies().SelectMany(ResolveFromAssembly).ToList(); - - public List ResolveFromObjectReference(object obj) => ResolveFromTypeReference(obj.GetType()); - - public List ResolveFromTypeReference(Type t) => Assembly.GetAssembly(t)?.GetReferencedAssemblies().SelectMany(ResolveFromAssemblyName).ToList() ?? new List(); - - public List ResolveFromAssemblyName(AssemblyName assemblyName) => ResolveFromAssembly(Assembly.Load(assemblyName)); - - public List ResolveFromAssembly(Assembly assembly) => assembly.GetTypes() - .Where(x => x is { IsClass: true, IsAbstract: false } && x.GetInterfaces().Contains(typeof(T))).ToList(); -} -- cgit 1.4.1