Fixed type filtering in assembly extensions

This commit is contained in:
Sven Reichelt 2020-06-08 11:36:32 +02:00
parent 41348b285d
commit 3503f20255
No known key found for this signature in database
GPG Key ID: F1C6E2215665A760

View File

@ -35,7 +35,7 @@ namespace System.Reflection
return assembly.GetTypes() return assembly.GetTypes()
//.Where(t => t.GetInterfaces().Contains(interfaceType)); //.Where(t => t.GetInterfaces().Contains(interfaceType));
.Where(x => interfaceType.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract); .Where(x => !x.IsInterface && !x.IsAbstract && interfaceType.IsAssignableFrom(x));
} }
public static IEnumerable<Type> GetTypes<T>(this Assembly assembly) public static IEnumerable<Type> GetTypes<T>(this Assembly assembly)
@ -51,7 +51,7 @@ namespace System.Reflection
} }
var type = typeof(T); var type = typeof(T);
var list = assembly.GetTypes() var list = assembly.GetTypes()
.Where(x => type.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract && !x.IsGenericType); .Where(x => !x.IsInterface && !x.IsAbstract && !x.IsGenericType && type.IsAssignableFrom(x));
foreach (var type1 in list) foreach (var type1 in list)
{ {