Search code examples
c#assembliessystem-codedom-compiler

CompilerParameters.ReferencedAssemblies -- Add reference to System.Web.UI.WebControls


I am compiling classes at run-time using the CodeDomProvider class. This works fine for classes only using the System namespace:

using System;

public class Test
{
    public String HelloWorld()
    {
        return "Hello World!";
    }
}

If I try to compile a class using System.Web.UI.WebControls though, I get this error:

{error CS0006: Metadata file 'System.Web.UI.WebControls' could not be found} System.CodeDom.Compiler.CompilerError

Here's a snippet of my code:

var cp = new CompilerParameters();

cp.ReferencedAssemblies.Add("System.Web.UI.WebControls");

How do I reference the System.Web.UI.WebControls namespace?


Solution

  • You reference assemblies, not namespaces. You should use MSDN to look up the name of the assembly that contains the classes you need to use: in this case it's going to be:

    var cp = new CompilerParameters();
    cp.ReferencedAssemblies.Add("System.Web.dll");