私は2つのインターフェイス、ジェネリックと継承階層を持っている非ジェネリックを持っている:ジェネリックインターフェイスを実装するすべてのアイテムを列挙するにはどうすればよいですか?
public interface IGenericRelation<TParent, TChild> : IRelation
public interface IRelation
一般的なものが動的にロードされているいくつかのサーバーコントロールによって実装され、私はコントロールのコレクションに列挙したいれますこのインターフェイスを実装します。私は、次の
foreach (IRelation relationControl in this.uiPlhControls.Controls.OfType<IRelation)
{ ... }
しかし、私が本当に行うことができるようにしたいのですが...
foreach (IGenericRelation<,> relationControl in this.uiPlhControls.Controls.OfType<IGenericRelation<,>)
{ ... }
を行うと、それはとして供給されたタイプでrelationControl
を使用することができることができます次に、私は、IGenericRelationで利用可能な強く型付けされたプロパティにアクセスできます。残念ながら、タイプパラメータを省略できないようですので、これは不可能です。
一般的なインターフェイスを実装するコントロールを列挙する方法を知っている人がいますが、私は1つのループではなく複数のループを記述しないようにしていますか?おそらく反射を使用して?
ちょうどこれをした初期のLinqサンプルを覚えているようですが、私がlinqを見に来たときに見つけられませんでした。私はこの空間を見ている。 。 。 –