Parent Child Type Hierarchy Utility / Tool In .NET

In this blog, you will learn about parent child type hierarchy utility / tool in .NET.

Many times, while coding, I need to know the base class hierarchy to understand the limitation and benefits of the current code block and logic. MSDN is a good place to go for all Microsoft created classes. However, I usually face one limitation: I can see the class base hierarchy but, it is not clear, which base class is actually implementing which interface. While creating a large project/ product, it helps to understand the code.

Create a small tool/ Utility v0.0.0.4, to do this:


In Figure 1, given above, The name of the assembly is being loaded, its version is displayed at the top center. The list on the right hand side is the list of the types available in the selected assembly.


Now, in Figure 2, given above, I selected a type from the list and on the left hand side, I can see the complete concrete class hierarchy, along with the list of the interfaces, implemented by each concrete class.

Being a developer in the .NET world, I have a good idea of what is the capability of a Child class ObservableObject<T>. Similarly, in the case with the interfaces it implements. Seeing the list gives me the capability for interfaces to be added to my selected class.


If the list of types available in the selected assembly is large, you can use the Search Textbox feature ( Figure 3, given above) to find the type you are looking for.
Sort button on the right hand top helps you to sort the list of the available type and again find your type easily.

In my Application, the number of assembly and number of types in each assembly are ~ 4000 .This tool helps to understand the Application design.

application design

This tool is created in .NET 4.6.1. Thus, all DLL/ EXE created in the earlier versions of .NET can be loaded and searched for. I tested it for the assemblies created in .NET 4, 4.5, 4.6.1 and it works well.

Note: This is not the final version, but still in good shape to be shared with the community.