c# - CompilerParameters.ReferencedAssemblies -- 添加对 System.Web.UI.WebControls 的引用

标签 c# compiler-construction assemblies

我正在使用 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/

相关文章:

c# - "this"可以在 C# 虚拟方法中为 null 吗?其余的实例方法会发生什么?

c# - 为什么使用 TransactionScope 的默认构造函数有害?

c# - 从字节数组数据中获取图像的宽度和高度

c++ - 源操作数和目标操作数 - LLVM 指令

c# - 错误 : Reference to type claims it is defined, 但找不到

refactoring - 重构产生了一个库。复试?

.net - 是否可以将 Windows 程序集转换为单声道?

c# - 如何使用 C# 在 sql 表中生成自动生成和自动更正的列

compiler-construction - 现代编译器如何知道操作不会产生副作用?

c# - 访问 `this` : invalid in C#, 的字段初始值设定项在 Java 中有效吗?