L'interface ICodeCompiler peut être implémentée pour un compilateur spécifique, afin de permettre aux développeurs de compiler des assemblys par programme à partir d'unités de compilation CodeDOM (Code Document Object Model), de chaînes contenant du code source ou de fichiers de code source.
L'interface ICodeCompiler permet d'appeler la compilation à l'aide de paramètres spécifiés au moment de l'exécution et d'accéder aux informations relatives à la compilation, une fois celle-ci exécutée, notamment le code de résultat et toute erreur ou tout avertissement éventuellement retourné par le compilateur. Chaque méthode de compilation accepte un objet CompilerParameters qui spécifie les paramètres du compilateur et retourne un objet CompilerResults qui indique les résultats de la compilation.
Les développeurs de compilateurs doivent fournir une implémentation de cette interface afin de prendre en charge la compilation dynamique. Les implémenteurs de CodeDomProvider doivent également envisager d'implémenter cette interface afin de fournir une fonctionnalité de compilation par programme pour le langage pour lequel ils offrent une prise en charge de CodeDom.