私は、インターフェイスがリフレクションを通して私に許可するすべてのメソッドを見つけようとしています。私は型の配列を持っているだけですが、そこからはすべてのメソッドを抽出する必要があることを確認します。不幸にも、私がtypeof(IList).GetMethods()のようにICollection上のメソッドではなくIListのメソッドを返しますIEnumerable 次のようなlinqクエリを試しましたが、外側のインターフェイスにあるメソッドは返されません。クエリを修正するにはどうすればよいですか?これはSQLだった場合LINQを使用して、インタフェースのタイプ[]のすべてのメソッドを取得しますか?
from outerInterfaces in interfaces
from i in outerInterfaces.GetInterfaces()
from m in i.GetMethods()
select m
は、私はすべての労働組合で再帰CTEのような何かを行うことができますが、私は、このような構文は、C#には存在しないと思います。誰でもここで助けることができますか?
@LukeH:私の編集を参照してください。 GetInterfaces()はすべてのインターフェイスを取得し、階層ツリーを上に向かって歩きます。 – BFree
@ルーク:うわー、私はそれを知らなかった。私はその周りのいくつかのドキュメントを見たいと思う。私はまた、他の言語(特にVB.Net)でも同様のことがあるのだろうかと思っています。 – BFree
@BFree:私はいくつかの研究をしている間に私のコメントを削除しました。私は確信していますが、確かに私はそれをどこかに読んでいます。だから、私は 'GetInterfaces'はとにかくあなたの答えに無関係な実際の動作をさせる再帰的だと思います。 – LukeH