你已经说过你知道如何使用CodeDOM - 为什么不使用它?
如果你对它是C#代码感到满意,那就CSharpCodeProvider做一个令人钦佩的工作.如果您有更多的冒险精神,您可能需要考虑Boo - 阅读Ayende Rahien关于在Boo中构建DSL的书籍,以获取更多信息和建议.
有关使用的示例CSharpCodeProvider,您可以从我在深度网站的C#中下载Snippy .基本上Snippy允许你键入代码片段并运行它,而不必费心去声明类等.它没有比构建和运行代码更多的功能,所以它是一个非常方便的例子:)
有关更多示例,请在Stack Overflow上搜索CSharpCodeProvider.这是一个简短但完整的代码 - "hello world"的代码被编译然后执行.
using System;
using System.CodeDom.Compiler;
using Microsoft.CSharp;
class Test
{
public static void Main(string[] args)
{
string code = @"
using System;
class CodeToBeCompiled
{
static void Main()
{
Console.WriteLine(""Hello world"");
}
}";
var codeProvider = new CSharpCodeProvider();
var parameters = new CompilerParameters
{
GenerateExecutable = true,
OutputAssembly = "Generated.exe"
};
var results = codeProvider.CompileAssemblyFromSource
(parameters, new[] { code });
results.CompiledAssembly.EntryPoint.Invoke(null, null);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
784 次 |
| 最近记录: |