Generic ClassのCreateInstance
- GenericのTypeを取得
- 指定型のTypeを取得
- GenericのTypeから、MakeGenericType()を叩いて生成するTypeを取得
- Activator.CreateInstance
てな流れ。リフレクション万歳だねぇ。。
プロパティ(PropertyInfo)からGeneric型を動的生成した例
//Get generic type Type genericType = property.PropertyType.GetGenericTypeDefinition(); //Get argument types Type[] argsType = property.PropertyType.GetGenericArguments(); //Get type for construction Type createType= genericType.MakeGenericType(argsType); //Create! object genericObject = Activator.CreateInstance(createType);
MSDN:How to: Examine and Instantiate Generic Types with Reflection | Microsoft Docs