gpt4 book ai didi

c# - Mono.Cecil TypeReference 类型?

转载 作者:IT王子 更新时间:2023-10-29 04:43:49 29 4
gpt4 key购买 nike

有没有从 Mono.Cecil 中的 TypeReference 到 Type 的方法?

最佳答案

就“盒子里有什么”而言,您只能使用 ModuleDefinition.Import API 将其反过来。

要从 TypeReference 转到 System.Type,您需要使用 Reflection 和 AssemblyQualifiedName 手动查找它。请注意,Cecil 使用 IL 约定来转义嵌套类等,因此您需要进行一些手动更正。

如果您只想解析非泛型、非嵌套类型,您应该没问题。

要从 TypeReferenceTypeDefition(如果这是您的意思),您需要 TypeReference.Resolve();


请求的代码示例:

TypeReference tr = ... 
Type.GetType(tr.FullName + ", " + tr.Module.Assembly.FullName);
// will look up in all assemnblies loaded into the current appDomain and fire the AppDomain.Resolve event if no Type could be found

反射中使用的约定得到解释here ,有关 Cecils 约定,请参阅 Cecil 源代码。

关于c# - Mono.Cecil TypeReference 类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4184384/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com