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

    代码
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Microsoft.CSharp;
    using System.IO;
    using System.CodeDom.Compiler;

    namespace CompileFiles
    {
        
    class Program
        {
            
    static void Main(string[] args)
            {
                
    //*************************
                IDictionary<stringstring> dic = new Dictionary<stringstring>();
                dic.Add(
    "CompilerVersion""v3.5");
                CSharpCodeProvider objCSharpCodePrivoder 
    = new CSharpCodeProvider(dic);

                CompilerParameters paras 
    = new CompilerParameters();
                paras.GenerateExecutable 
    = false;   //编译成exe还是dll
                
    //paras.ReferencedAssemblies.Add("System.dll");
                paras.GenerateInMemory = true;   //是否写入内存,不写入内存就写入磁盘
                paras.OutputAssembly = "C:\\UserInfo.dll";  //输出路径
                paras.ReferencedAssemblies.Add("System.dll");
                paras.ReferencedAssemblies.Add(
    @"C:\WINDOWS\assembly\GAC_MSIL\System.Core\3.5.0.0__b77a5c561934e089\System.Core.dll");
                StreamReader sr 
    = new StreamReader(@"C:\UserInfo.cs");
                String txtStr 
    = sr.ReadToEnd();

                CompilerResults result 
    = objCSharpCodePrivoder.CompileAssemblyFromSource(paras, txtStr);
                
    if (result.Errors.HasErrors)
                {
                    
    string ErrorMessage = "";
                    
    foreach (CompilerError err in result.Errors)
                    {
                        ErrorMessage 
    += err.ErrorText;
                    }
                    Console.WriteLine(ErrorMessage);
                }
                
    //*************************
                Console.ReadKey();
            }
        }
    }
    // -----------------------------------------
    using System;


    namespace Model
    {
        
    public class UserInfo
        {
            
    public virtual int ID { getset; }
            
    public virtual string UserID { getset; }
            
    public virtual string UserName { getset; }
        }
    }


  • 相关阅读:
    Android获取屏幕分辨率及DisplayMetrics简介(轉)
    程序员技术练级攻略
    CSDN精选iPhone开发博客
    Java中访问权限修饰符public protected 缺省默认 private的用法总结(转)
    Java中abstract class 和 interface 的解释和他们的异同点(转)
    Code Project精彩系列(转)
    java中重载与重写的区别
    HDU 1024 Max Sum Plus Plus(动态规划,给定一个数组,求其分成m个不相交子段和最大值的问题)
    Triple ACM HDU 3908 (数学题,找多少种组合)
    ACM POJ 1015 Jury Compromise(陪审团的人选,动态规划题,难)
  • 原文地址:https://www.cnblogs.com/binlyzhuo/p/1768516.html
Copyright © 2011-2022 走看看