2012-02-28 43 views
3

我有一些类(简单的类),我想在运行时编译这个类,并创建(在运行时)某些dll,将包含此类。如何在runTime中创建包含类的dll?

有没有办法做到这一点?

谢谢。

+1

使用'CSharpCodeProvider',这可能会有所帮助:http://msdn.microsoft.com/en-gb/library/microsoftoft.csharp.csharpcodeprovider.aspx – davioooh 2012-02-28 08:25:41

+2

看看: http://stackoverflow.com/questions/604501/generating-dll-assembly-dynamically-at-run-time – 2012-02-28 08:29:48

回答

7

是的,请使用CSharpCodeProvider

你可以阅读sample code的“Snippy”,我用它深入C# - 它正是这样的事情。

您可以请求CSharpCodeProvider写入文件或在存储器中构建程序集。

示例代码:

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

可以使用CSharpCodeProvider在运行时请编译代码。见this MSDN blog

PS。通过快速谷歌搜索;

+0

感谢提示关于谷歌搜索 – 2013-07-10 12:24:49