我正在使用 CodeDomProvider
类在运行时编译类。这适用于仅使用 System
命名空间的类:
using System;
public class Test
{
public String HelloWorld()
{
return "Hello World!";
}
}
如果我尝试使用 System.Web.UI.WebControls
编译一个类,我会得到这个错误:
{error CS0006: Metadata file 'System.Web.UI.WebControls' could not be found} System.CodeDom.Compiler.CompilerError
这是我的代码片段:
var cp = new CompilerParameters();
cp.ReferencedAssemblies.Add("System.Web.UI.WebControls");
如何引用 System.Web.UI.WebControls
命名空间?
最佳答案
您可以遍历所有当前加载的程序集:
var assemblies = AppDomain.CurrentDomain
.GetAssemblies()
.Where(a => !a.IsDynamic)
.Select(a => a.Location);
cp.ReferencedAssemblies.AddRange(assemblies.ToArray());
关于c# - CompilerParameters.ReferencedAssemblies -- 添加对 System.Web.UI.WebControls 的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/793610/