The CodeDom enables language independent code generation. Tools create a CodeDom data structure and then the language support translates that into source. Therefore, a tool can generate code in any language that implements the CodeDom even if it's never "seen" that language before. This is one of the pillars of .NET being a multi-language environment.
project is initiated here: http://code.google.com/p/cobra-codedom/