博客园  :: 首页  :: 新随笔  :: 订阅 订阅  :: 管理

C# 动态编译DLL

Posted on 2023-03-14 12:02  PHP-张工  阅读(84)  评论(0编辑  收藏  举报
string code = @"
using System;
namespace CompilerTool
{
    class Class1
    {
        public Class1()
        {
        }
        public string now()
        {
            return DateTime.Now.ToString(""yyyy - MM - dd HH: mm: ss"");
        }
        public string Hello(int i)
        {
            return (i + 1).ToString();
        }
    }
}
";

CodeDomProvider provider = CodeDomProvider.CreateProvider("CSharp");
CompilerParameters objCompilerParameters = new CompilerParameters();
objCompilerParameters.ReferencedAssemblies.Add("System.dll");
objCompilerParameters.GenerateExecutable = false;
objCompilerParameters.GenerateInMemory = false;
objCompilerParameters.OutputAssembly = "Class1.dll";

CompilerResults cr = provider.CompileAssemblyFromSource(objCompilerParameters, code);

if (cr.Errors.HasErrors)
{
    showInfo("编译错误:");
    foreach (CompilerError err in cr.Errors)
    {
        showInfo(err.ErrorText);
    }
}
else
{
    showInfo("编译完成:" + cr.Output);
}