インターフェイスのメソッドを考えてみましょう:
public Interface IA {
T[] Get<T>() where T : IB;
}
別の場所では、コンパイル時に既知の n 型に対して、このメソッドを n 回呼び出したいと考えています。次のコードは、私の意図を示しています。
foreach(Type t in new Type[] { typeof(X), typeof(Y), typeof(Z) })
{
InterfaceXYZImplement[] arr = c.Resolve<IA>().Get<t>();
//...more here
}
さて、foreach
ループは明らかに型を実行時の値にするので、使用する必要がありますMakeGenericMethod
。
X
、Y
およびに対してコードを実行できるようにコードを記述しZ
、メソッドを 1 回だけ呼び出す方法はありますか?
コードをメソッドにラップしても、問題が上に移動するだけです (これは部分的な解決策ですが、最終的な解決策ではありません)。