使用Mono.Cecil获取类型的实现接口

时间:2014-08-11 09:04:53

标签: c# interface mono mono.cecil

很抱歉,如果这个问题听起来微不足道,我已经阅读了很多关于这个问题的讨论,但是如果我说得不对,我不能百分百肯定:

我想获得所有由类实现的接口 - 然后我可以使用以下代码:

foreach (TypeDefinition typeItem in currentAssembly.MainModule.Types)
{
  // if the class has interfaces, get them
  Mono.Collections.Generic.Collection<TypeReference> interfaceList = typeItem.Interfaces;
}

所以变量&#34; interfaceList&#34;现在应该包含所有接口,&#34; typeItem&#34;实现 - 接口是显式还是隐式实现并不重要?

提前感谢您的回答!

1 个答案:

答案 0 :(得分:1)

要了解上面的代码是否正常工作,您需要使用以下测试用例创建简单的程序集。然后编写一些单元测试,你就完成了。

测试用例:

  1. 没有接口的类 - 数组应为空
  2. 具有一个接口的类 - 数组应该有一个元素
  3. 具有多个接口的类
  4. 从第1点继承类的类
  5. 从第3点继承类的类
  6. 从第2点继承类并再实现一个接口的类
  7. 如果第5点和第6点没有显示正确的接口数,你可以总结“this”类接口和“all-parents”类接口