有时我想找出实现特定接口的所有标准 .NET 类型的列表。通常是出于好奇,有时也有一些实际目的(但这不是重点)。
我试图从 MSDN 中得到这个,但类型的页面只包含类型的链接子项,而不是实现接口的类型。
你知道如何做到这一点的任何技巧(或有帮助的工具)吗?
我写了这段代码(ICollection
正在调查的类型):
var result =
from assembly in AppDomain.CurrentDomain.GetAssemblies().ToList()
from type in assembly.GetTypes()
where typeof(ICollection).IsAssignableFrom(type)
select type;
foreach (var type in result)
{
Console.Out.WriteLine(type.FullName);
}
但这有一些限制:
- 它只搜索当前加载的程序集。
- 我想不出一种方法来为通用接口执行此操作(
ICollection<>
行不通)。 - 如果它提供指向 MSDN 的链接会很好(但我想这可以修复)。
感谢帮助!