我以为我可以使用IMetaDataImport.EnumTypeDefs和枚举类型 对于返回的每个标记,请调用IMetaDataImport.EnumCustomAttributes。
这很有用,因为我得到了一个mdCustomAttribute标记数组。使用这些令牌,我可以通过调用IMetaDataImport.GetCustomAttributeProps来获取表示返回的自定义属性的Type的元数据标记。
将我的结果与ILDASM进行比较,我可以看到这与ILDASM报告的“CustomAttribute Type”相匹配。但是,我无法确定如何确定ILDASM报告的“CustomAttributeName”。这就是我真正想要的!
虽然我有兴趣知道如何获取CustomAttributeName,但我会选择另一种方法来解决问题。
答案 0 :(得分:1)
抱歉,这是RTFM的案例。 GetCustomAttributeProps
返回的属性不是typedef令牌,而是mdMethodDef
或mdMemberRef
令牌。
对于mdMethodDef标记,使用IMetaDataImport.GetMethodProps
查找typeDef标记,对于mdMemberRefs,它是稍长的路径,但是从IMetaDataImport.GetMemberRefProps
开始。
故事的寓意是要注意这些功能正在返回的那种令牌!