zoukankan      html  css  js  c++  java
  • C# 动态编译

    原文:https://www.cnblogs.com/rookey/p/5230945.html

    备注:在看项目的时候看到的,顺便备注一下。

            public ActionResult Test2()
            {
                string filePath = "E:\2\Student.code";
                string[] referenceAssemblyNames = new string[]
                    {
                        "System.dll"                    
                    };
                //输出dll
                string outputDll = "E:\2\Student.dll";
                string errMsg = CompileFromFile(new string[] { filePath }, referenceAssemblyNames, outputDll);
                return Content(errMsg);
            }
            /// <summary>
            /// 从文件编译
            /// </summary>
            /// <param name="files">要编译的代码文件集合</param>
            /// <param name="referenceAssemblyNames">引用程序集名称集合</param>
            /// <param name="outputAssembly">输出dll名称</param>
            /// <returns>返回异常信息</returns>
            public static string CompileFromFile(string[] files, string[] referenceAssemblyNames, string outputAssembly)
            {
                CSharpCodeProvider codeProvider = new CSharpCodeProvider();
                CompilerParameters compilerParameters = new CompilerParameters(referenceAssemblyNames, outputAssembly);
                CompilerResults complierResult = codeProvider.CompileAssemblyFromFile(compilerParameters, files);
                if (complierResult.Errors.HasErrors)
                {
                    StringBuilder message = new StringBuilder();
                    foreach (CompilerError err in complierResult.Errors)
                    {
                        message.AppendFormat("(FileName:{0},ErrLine:{1}): error {2}: {3}", err.FileName, err.Line, err.ErrorNumber, err.ErrorText);
                    }
                    return message.ToString();
                }
                return string.Empty;
            }

    Student.code 文件:

    using System;
    
    namespace WebApplication1.Controllers
    {
        public class Student
        {
            public string Name { get; set; }
        }
    }
  • 相关阅读:
    设计模式之_6大设计原则(转)
    Django-ORM多表操作(进阶)
    03-django模型(1)
    02-Django基础知识
    web开篇
    body标签中的相关标签
    01-前端初识
    Flask简述
    浅析设计模式
    Python的单例模式
  • 原文地址:https://www.cnblogs.com/guxingy/p/10669638.html
Copyright © 2011-2022 走看看