我有一个程序集,我想列出从特定类/接口(interface)继承的所有类。
我该怎么做?
最佳答案
类似于:
public static IEnumerable<Type> GetSubtypes(Assembly assembly, Type parent)
{
return assembly.GetTypes()
.Where(type => parent.IsAssignableFrom(type));
}
这对于简单的情况来说很好,但是当你想找到“所有类型实现 IEnumerable<T>
的任何 T
”等等时,它会变得更“有趣”(阅读:棘手)。
(正如 Adam 所说,您可以轻松地将其作为扩展方法。这取决于您是否认为您会重用它 - 扩展方法必须位于非嵌套静态类中是一种痛苦...... )
关于c# - 列出从特定类/接口(interface)继承的所有类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1287892/