string Code = context.Request["Code"];
CSharpCodeProvider objCSharpCodePrivoder = new CSharpCodeProvider();
// 2.ICodeComplier
ICodeCompiler objICodeCompiler = objCSharpCodePrivoder.CreateCompiler();
// 3.CompilerParameters
CompilerParameters objCompilerParameters = new CompilerParameters();
objCompilerParameters.ReferencedAssemblies.Add("System.dll");
string DllPath = ConfigurationManager.AppSettings["DllPath"];
objCompilerParameters.ReferencedAssemblies.Add(DllPath+"KO.dll");
objCompilerParameters.ReferencedAssemblies.Add(DllPath + "UBIEngine.API.Common.dll");
objCompilerParameters.ReferencedAssemblies.Add(DllPath + "UBIEngine.CommunicationArchitecture.API.Client.dll");
//objCompilerParameters.ReferencedAssemblies.Add("http://" + "localhost:5006" + "/DLL/UBIEngine.CommunicationArchitecture.API.Client.dll");
objCompilerParameters.GenerateExecutable = false;
objCompilerParameters.GenerateInMemory = true;
// 4.CompilerResults
CompilerResults cr = objICodeCompiler.CompileAssemblyFromSource(objCompilerParameters, Code);
if (cr.Errors.HasErrors)
{
Console.WriteLine("编译错误:");
var result = "";
foreach (CompilerError err in cr.Errors)
{
result = err.ErrorText;
Console.WriteLine(err.ErrorText);
}
string json = "{success:'false',result:'" + result + "'}";
context.Response.Write(json);
}
else
{
string json = "{success:'true'}";
context.Response.Write(json);
}
本文介绍了一个使用C#进行动态编译代码的示例,包括设置编译参数、引用必要的系统库和自定义DLL,以及如何处理编译过程中的错误。此示例展示了如何在运行时生成和编译C#代码。
1362

被折叠的 条评论
为什么被折叠?



