In Visual Studio, How do I show all classes inherited from a base class?
For example, in ASP.NET MVC there are several ‘ActionResult‘ types — and they all inherit from / implement the base class ActionResult.
It looks like unless you just ‘know’ that View and Json are valid ActionResult types, there is no way you can easily find this information out.
Please prove me wrong.
Is there something in the object browser that makes this easy to find out?
I’m even up for suggestions of tools outside of Visual Studio to discover this information about various classes. For example: is there something in Resharper that will help me out?
Sure, Resharper can do this. And much more.
Just right click on type name in any place and choose ‘Go To Inheritor’ in context menu. ‘Go To Inheritor’ can be also applied to method for navigating to overrides and an interface method’s implementations. For an interface you could call ‘Find Usages Advanced’ again, just right click) where to find all extendings and implementations. For a type – derived types. And my favorite feature – click with holding Control on any type/method for navigating to its declaration.
I think it’s a must-have tool for .net developers.
In Resharper 9.2, on any type in source code, rt-click ‘Find Usage Advanced’, select Find=’Derived’ and Scope=’Solutions and Libraries’.
For example, to find all inheritors (both in the library and your code) of some base class in an included DLL from any vendor, declare a variable in your code with that base class. Then right-click on that base class name you just typed.