特定のインターフェイスを実装するすべての標準.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へのリンクを提供するならそれは素晴らしいでしょう(しかし私はそれが修正されるかもしれないと思います)。
手伝ってくれてありがとう!