我有一些类(简单类),我想在运行时编译这个类,并创建(在运行时)一些将包含此类的DLL。
有办法吗?
感谢。
答案 0 :(得分:7)
是的,请使用CSharpCodeProvider。
你可以阅读我用于深度C#的“Snippy”的sample code - 它确实是这样做的。
您可以要求CSharpCodeProvider
写入文件或在memmory中构建程序集。
示例代码:
using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
class Test
{
static void Main()
{
var provider = new CSharpCodeProvider();
var options = new CompilerParameters {
OutputAssembly = "Foo.dll"
};
string source = "public class Foo {}";
provider.CompileAssemblyFromSource(options, new[] { source });
}
}
答案 1 :(得分:1)
您可以使用CSharpCodeProvider
在运行时编译代码。请参阅this MSDN blog。
PS。通过快速谷歌搜索找到;)