我查看了Wiki上的文档,但看起来有点薄。如何确定类型是否使用Cecil实现给定的接口?对于我的特定实现,重要的是我实际上并没有将类型加载到AppDomain中。
这是我到目前为止的代码:
Dim outputModule As ModuleDefinition = ModuleDefinition.ReadModule(outputFile)
For Each assemblyType As TypeDefinition In outputModule.Types
'How to determine if assemblyType implements a specific interface?
Next
答案 0 :(得分:4)
在C#中,我实现了比较接口的全名:
if (assemblyType.Interfaces.Any(
type => type.Resolve().FullName == typeof(YourInterface).FullName
)) {
// ...
}
如果你的接口有TypeDefinition
,你也可以比较{{1}}。