Wenn Sie die Fähigkeit zu analysieren , und führen Sie beliebige Analysen und Transformationen auf C# Quellcode (oder eine Vielzahl von anderen Sprachen), finden Sie in unserem The DMS Software Reengineering Toolkit.
DMS verfügt über ein vollständiges C# -Protokoll, erstellt vollständige abstrakte Syntaxbäume für geparsten Code (aber kein CodeDom), bietet eine vollständige prozedurale API zum Gehen/Überprüfen/Ändern der ASTs. Nach der Überarbeitung des Baums kann DMS den dem geänderten Baum entsprechenden Quellcode erneut generieren, entweder im Wiedergabe-Modus, in dem er versucht, den ursprünglichen Abstand beizubehalten, oder im Modus "Schöndruck", bei dem er einen Schöndruckstil anwendet, den Sie vollständig steuern können. Kommentare bleiben in der neu generierten Quelle erhalten.
Darüber hinaus bietet DMS Pattern-Matching und Transformation auf Source-Level-Ebene (zB können Sie "x = x + 1 ==> x ++" schreiben anstatt den gesamten zu testenden Baum zu verifizieren, hacken Sie den Baum zu ändern.) Siehe writeup on program transformations, um zu verstehen, warum das viel weniger Arbeit ist ..
Aber warum? Verwendet der C# -Compiler kein CodeDOM? – ulrichb
Nein, tut es nicht. CodeDom ist für verwaltete Anwendungsentwickler; csc.exe ist nicht gemanagter Code, der keine .NET-Abhängigkeiten hat. – bobbymcr