2

我浏览了 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
4

1 回答 1

6

在 C# 中,我已经实现了它比较接口的全名:

if (assemblyType.Interfaces.Any(
  type => type.Resolve().FullName == typeof(YourInterface).FullName
)) {
  // ...
}

TypeDefinition如果您的界面有一个,您也可以比较s。

于 2012-06-23T13:04:13.087 回答