ISurface<T>
任意のタイプのインターフェイスを実装するすべてのプラグインを検出する必要があるプラグイン アーキテクチャがあります(つまり、 のテストISurface<>
)。ここには LINQ を使用したいくつかの提案 (例: this one ) があり、これよりも優先する理由があるかどうか疑問に思っています。
.GetType().GetInterface("ISurface`1")
編集:インターフェース名のハードコーディングに関しては、ティムが以下で述べたように、名前が実際のインターフェースから直接抽出された場合、これらの懸念は軽減されると思います:
.GetType().GetInterface(typeof(ISurface<>).FullName)
名前空間のあいまいさに .FullName
も問題はないはずです。ハードコーディングはさておき、一連の型プロパティ チェック / LINQ 構文を実行するよりも短くてきれいに見えるため、アプローチ自体に主に興味があります。繰り返しますが、ボンネットの下で何が起こっているのかわかりません。