Over a last month I was involved in Expressions to CodeDOM project. This blog I plan to use to explain some general aspects, usage scenarios and internal mechanisms of the library.
The library consists of five abstractions
- Define static class
- Emit static class
- CodeDom static class
- Microsoft CodeDOM extesion methods
- CodeDomGenerator class
Define class using for class, method, property, event, etc declarations. It helps to create CodeTypeMember classes (CodeTypeDeclaration, CodeMemberMethod, etc).
Emit class helps to create various statements as return, if, for, etc. All methods of the class return instances of CodeStatement derived classes.
CodeDom helps to create some statements which cannot be presented in pure lambda functions. It helps to create CodeExpressions too.
Microsoft CodeDOM extesion methods simplify work with CodeDOM.
CodeDomGenerator is a root class, main entry point of the library. Although you can create CodeDOM tree without it, it very helps to store root namespaces, process CodeDOM tree and generate the code.