リフレクションによってジェネリック パラメーターのジェネリック型を取得する必要があります。しかし、型 { Name="T" ; ではなく、実際の型です。FullName=null }
public void Sample<T>(T i, object o)
{
MethodBase basee = MethodBase.GetCurrentMethod();
Type[] types = basee.GetGenericArguments();
}
しかし、リフレクションを使用しているため、typeof(T) は使用できません。
(リフレクションを使用して) ジェネリック引数の型を取得する方法はありますか。
// in this case i should get (Type) { Name="Int32" ; FullName="System.Int32" }
myClassObj.Sample(10, new object());
他のテーマでは、typeof(T) ex によって呼び出されるメソッドを呼び出す方法を知りたい:
// in Il code I see that the compiler use:
// ldtoken !!T => this should get the RuntimeTypeHandle needed as parameter
// System.Type::GetTypeFromHandle(valuetype System.RuntimeTypeHandle)
Type t = Type.GetTypeFromHandle( ? ? ? );
T ジェネリック引数から RuntimTypeHandle を取得するにはどうすればよいですか