从IntPtr句柄输入

Ill*_*ack 0 .net c# clr

是否可以System.TypeIntPtr类型句柄中获取对象(可以通过获取)?Type.TypeHandle.Value

例:

TypeFromIntPtr(typeof(object).TypeHandle.Value) == typeof(object) //true
Run Code Online (Sandbox Code Playgroud)

编辑:我很高兴有许多有用的人认为我正在尝试解决其他问题,但我正在寻找这个特定问题的答案,我对此非常肯定.我很抱歉没有首先说明它.

编辑#2:类型句柄是一个指针,指向CLR中表示RTTI的结构.我不想从这个结构中读取数据,我想要一种为此返回托管Type对象的方法.我需要将指针"转换"为对象.

Sri*_*vel 7

我们通常不允许任何人射击他们的脚,但你似乎坚持你需要,而你知道你在做什么.

这是你射脚的方法:

private static Type GetTypeFromHandle(IntPtr handle)
{
    var method = typeof(Type).GetMethod("GetTypeFromHandleUnsafe", BindingFlags.Static | BindingFlags.NonPublic);
    return (Type)method.Invoke(null, new object[] { handle });
}

private static void Main(string[] args)
{
    IntPtr handle = typeof(string).TypeHandle.Value;//Obtain handle somehow

    Type type = GetTypeFromHandle(handle);
}
Run Code Online (Sandbox Code Playgroud)