【发布时间】:2019-01-09 13:04:21
【问题描述】:
Mono.Cecil 通过method.IsPInvokeImpl 提供了一种检查方法是否为pinvoke 的方法,并且还通过method.PInvokeInfo 提供了更多信息。我怎样才能找到 dll 名称?
【问题讨论】:
-
有
.Attributes吗?相关数据是DllImportAttribute元数据(特别是Value)的一部分。 -
.Attributes是一个枚举,method.HasCustomAttributes也返回 false。 -
啊。我的错,
DllImport只是 C# 编译器假装的喧嚣。实际的 IL 包含入口点数据作为pinvokeimpl属性的一部分。.PInvokeInfo在.Module.Name中没有你需要的东西吗? (我这里严格按照 Cecil 源代码进行,没有要测试的实际代码。) -
@JeroenMostert,正确。发布答案。
标签: cil mono.cecil