次のシグネチャを持つジェネリック メソッドがあります。
Broker.GetMessages<TType>();
次の方法で使用できます。
IList<IEmailMessage> emails = Broker.GetMessages<IEmailMessage>();
この構造体の配列内で使用可能な一連の型に対して、このメソッドを実行する必要があります。
var messageTypes = new [] { typeof(IEmailMessage), typeof(IFaxMessage) }
私の最終結果は次のようになります。
foreach ( IMessage message in messageTypes)
{
Broker.GetMessages<xxx>();
}
問題は、タイプをジェネリックとして渡すために変換する方法がわからないことです。リフレクションを使用してメソッドを呼び出すことができることはわかっていますが、これを達成するためのより良い方法があるかどうか疑問に思っていました。配列構造は変更できますが、メソッド シグネチャは変更できません。