Die .Net-CLR als Makro-Baukasten

CompilerResults auswerten

CompileAssemblyFromFile() liefert als Resultat eine Instanz von Typ CompilerResults. Diese Instanz hat etliche Eigenschaften. Die zunächst interessanteste ist die Eigenschaft Errors. Dabei handelt es sich um eine Collection aus Objekten vom Typ CompilerError. Treten beim Übersetzen Fehler auf, wird für jeden ein CompilerError-Objekt in der CompilerErrorCollection Errors angelegt. Mit anderen Worten: Ist Errors.Count ungleich 0, dann hat das Übersetzen nicht funktioniert, und Sie müssen eine Fehlermeldung anzeigen.

Das Anzeigen der Fehler ist zum Glück recht einfach, denn eine CompilerError-Instanz enthält neben der Zeile und Spalte, in der der Fehler aufgetreten ist, auch einen passenden Fehlertext. Sie können also einfach über alle Compiler-Fehler iterieren und sie dabei ausgeben.