Je compile des classes lors de l'exécution à l'aide de la classe CodeDomProvider
. Cela fonctionne bien pour les classes utilisant uniquement l'espace de noms System
:CompilerParameters.ReferencedAssemblies - Ajout d'une référence à System.Web.UI.WebControls
using System;
public class Test
{
public String HelloWorld()
{
return "Hello World!";
}
}
Si je tente de compiler une classe en utilisant System.Web.UI.WebControls
bien, je reçois cette erreur:
{error CS0006: Metadata file 'System.Web.UI.WebControls' could not be found} System.CodeDom.Compiler.CompilerError
Voici un extrait de mon code:
var cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.Web.UI.WebControls");
Comment faire référence à l'espace de noms System.Web.UI.WebControls
?
Ne fonctionne pas pour moi. Pensez-vous que je devrais fournir le chemin complet de l'assemblée? Si oui; comment pourrais-je le faire dynamiquement? – roosteronacid
Ah, System.Web.UI.WebControls.dll n'existe pas - les classes de cet espace de noms résident dans System.Web.dll à la place. –