Si desea que la capacidad de analizar y llevar a cabo análisis y transformaciones arbitrarios en el código fuente de C# (o en una variedad de otros idiomas), revisa nuestro The DMS Software Reengineering Toolkit.
DMS tiene un extremo frontal completo de C#, construye árboles de sintaxis abstractos completos para el código analizado (pero no es un CodeDom), proporciona una API de procedimiento completa para caminar/verificar/cambiar los AST. Después de revisar el árbol, DMS puede regenerar el código fuente correspondiente al árbol modificado, ya sea en el modo de fidelidad donde intenta preservar el espaciado original, o en el modo de impresión bonita, donde aplica un estilo de impresión bonita que puede controlar por completo. Los comentarios se conservan en la fuente regenerada correctamente.
Además, DMS proporciona coincidencia y transformación de patrones a nivel de fuente (por ejemplo, puede escribir "x = x + 1 ==> x ++" en lugar de codificar todo el árbol para verificar, hackear árbol para cambiar.) Ver writeup on program transformations para entender por qué esto es mucho menos trabajo ...
¿Pero por qué? ¿El compilador C# no usa CodeDOM? – ulrichb
No, no es así. CodeDom es para desarrolladores de aplicaciones administradas; csc.exe es un código no administrado que no tiene dependencias .NET. – bobbymcr