CodeDom namespace in .Net is one of several ways to develop your own compiler or source code generator in .Net. Even somewhat abandoned, it currently support for following languages:
- C# (native, out-of-the-box),
- VB.NET (native, out-of-the-box)
- F# (native, out-of-the-box)
- IronPython
CodDom provides you with the classes to build your own abstract syntax tree of your code, which can be either compiled to "binary" aka CIL or translated "back" to a high-order general purpose language from the list above. This explains why it is rather a complex namespace with many classes and non-trivial class hierarchy. If you try to build class diagram for this namespace you come up with the following image:
Since it is absolutely impossible to work with diagram I prepared a set of diagrams covering large constellations of classes.
So, here you have:
A general overview of CodeDom namespace classes with "pruned" tree.
Collections and enums.
CodeStatement
CodeType
CodeExpression
So, feel free to use these diagrams in your work. There is no explicit license attached to these images (I haven't drawn them, just used the VS2010 designer), so in case of a question just consider my work being a public domain.