有時我想找出一個實現特定接口的所有標準.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的鏈接(但我認爲可以修復)。
感謝您的幫助!
我認爲反射器有這樣的內置。檢查「使用者」分析功能。不確定Reflector是否仍然可用。我認爲他們想取消免費版本。 – CodesInChaos 2011-03-22 22:23:54