個人的なメモ。
たとえば、List<string>のインスタンスをリフレクションで生成したい場合、
var type = typeof(List<string>); var instance = Activator.CreateInstance(type);
ってなるのだけれど、
任意のTypeインスタンスがあって、これのジェネリックなコレクションが生成したい場合、
var type = typeof(string); var genericType= typeof(List<T>); // typeからT型が取りたいんだけど取れない var instance = Activator.CreateInstance(genericType);
なんとなくこんなふうにしたいんだけど、このTはどっからくるんじゃい?ってなるわけで。
そんなときにはこうする。
var type = typeof(string); var genericType= typeof(List<>).MakeGenericType(type); var instanct = Activator.CreateInstance(genericType);
めもめも。