如何在runTime中创建包含类的DLL?

时间:2012-02-28 08:21:21

标签: c# .net

我有一些类(简单类),我想在运行时编译这个类,并创建(在运行时)一些将包含此类的DLL。

有办法吗?

感谢。

2 个答案:

答案 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。通过快速谷歌搜索找到;)