如何在C#中找到所有支持的类型接口?

时间:2014-05-08 15:12:38

标签: c# visual-studio

使用第三方dll 时,如果我能够知道某个类型实现的接口,有时它会很方便。例如,对于XYZ类,我想知道它是否实现了ISerializable,IDisposable,ISupportInitialize等。


我不认为定义会解决问题。假设如果X继承Y继承Z,Y实现IY并且Z实现IZ,那么我不能告诉X实现IZ。


我使用的是Visual Studio 2010/2012/2013(我是一名初级开发人员,我实际上并不知道我可以用什么其他IDE来编写C#)。 @Michael Gray:当我在第三方dll中检查类型的定义时,我只能达到1级,我无法继续查看该类型继承的类型。我提出这个问题是因为我遇到了一个devexpress类型的问题,我尝试过这种方法,并检查了他们的在线文档并没有帮助。

2 个答案:

答案 0 :(得分:3)

进步时间:

Visual Studio:在DLL上打开对象浏览器,找到类型,读取。

运行时:

实例上的GetType为您提供了一个类型对象。它有你可以调用的方法。

http://msdn.microsoft.com/en-us/library/vstudio/system.type

FindInterfaces是一个不错的方法。

http://msdn.microsoft.com/en-us/library/vstudio/system.type.findinterfaces(v=vs.110).aspx 学习时间:

阅读文档。

答案 1 :(得分:1)

在Visual Studio中,您可以将光标放在类型名称上,然后按F12。这将带您进入类型的定义。从那里,您可以看到它实现的接口。

如果您不使用Visual Studio或任何其他IDE,您可以在MSDN上找到该文档并确定它实现的接口,假设它是.NET或任何其他Microsoft框架的一部分。

如果它不是Microsoft创建的类型或文档在MSDN上不可用,您可以使用.NET中包含的ILDASM工具来反汇编程序集并找到有问题的类型并查看继承的类型或接口。