我该怎么做?
public static IEnumerable<Type> GetSubtypes(Assembly assembly,Type parent) { return assembly.GetTypes() .Where(type => parent.IsAssignableFrom(type)); }
这对于简单的情况来说很好,但是当你想要找到“所有类型实现任何T的IEnumerable< T>”等时,它会变得更“有趣”(读:棘手).
(正如Adam所说,你可以很容易地将它作为一种扩展方法.这取决于你是否认为你会重用它 – 扩展方法必须在非嵌套静态类中是一种痛苦……)