複数の型制約を持つジェネリック メソッドがあるとします。これは次のとおりです。
public static void DoSomethingAwesome<T>(T thing)
where T : IThing, IAwesome, IComparable<T>
{
...
}
さて....リフレクションを使用して、そこに送信できるものを作成するにはどうすればよいですか?
それがたった1つの制約である場合、私は次のようにできることを知っています:
var types = assembly
.GetTypes()
.Where(typeof (IThing).IsAssignableFrom)
foreach(var t in types)
DoSomethingAwesome((IThing) Activator.CreateInstance(t));
しかし、実際には複数のインターフェイスにキャストすることはできません...どうすればこれを解決できますか? あなたは私が今ここでかなり迷っていると言うことができます:P
タイトルが長く複雑になってしまいました。これを何と呼べばいいのかわからなかったので、できれば改善してください