如何从System.Reflection.MethodBase.MetadataToken获取System.Reflection.Metadata.MethodDefintion?

我为.NET程序集创建了System.Reflection.Metadata.MetadataReader

var asm = new PEReader(peFile);
var asmReader = asm.GetMetadataReader();

我可以遍历所有MethodDefinitions,但是如何为给定的MethodDefinition实例找到特定的System.Reflection.MethodBase

我可以使用MethodBase.MetadataToken查找正确的MethodDefinition吗?

我还想从可移植PDB中查找相应的MethodDebugInformation;但是找到MethodDefinition之后应该很容易。

gaoyu5945 回答:如何从System.Reflection.MethodBase.MetadataToken获取System.Reflection.Metadata.MethodDefintion?

因此,解决方案非常简单,System.Reflection.Metadata.Ecma335包含一个MetadataTokens类,该类具有创建句柄的方法,然后可以使用这些句柄来查找MethodDefinition:

var handle = (MethodDefinitionHandle)MetadataTokens.Handle(metadataToken);
var md = asmReader.GetMethodDefinition(handle);
本文链接:https://www.f2er.com/2877858.html

大家都在问