• C#动态编译


    要用到C#的编译器、反射功能,自己瞧着去吧
    using System;
    using Microsoft.CSharp;
    using System.CodeDom.Compiler;
    using System.Reflection;
    
    public class Example
    {
        static void Main()
        {
            CSharpCodeProvider provider = new CSharpCodeProvider();
            CompilerParameters parameter = new CompilerParameters();
            parameter.ReferencedAssemblies.Add("System.dll");
            parameter.GenerateExecutable = false;
            parameter.GenerateInMemory = true;
    
            CompilerResults result = provider.CompileAssemblyFromSource(parameter, 
                CreateCode("256*56*(145+56.0*254/345)"));//将你的式子放在这里
            if (result.Errors.Count > 0)
            {
                Console.WriteLine("动态编译出错了!");
            }
            else
            {
                Assembly assembly = result.CompiledAssembly;
                Type AType = assembly.GetType("ANameSpace.AClass");
                MethodInfo method = AType.GetMethod("AFunc");
                Console.WriteLine(method.Invoke(null, null));
            }
            Console.Read();
        }
        static string CreateCode( string para)
        { 
            return "using System; namespace ANameSpace{static class AClass{public static object AFunc(){return "+para+";}}}";
        }
    }
  • 相关阅读:
    次短路
    【学习笔记】Git工具clone异常
    【学习笔记】 UOS安装MySQL
    AcWing 327. 玉米田(状态压缩动态规划)
    我发现了个 Python 黑魔法,执行任意代码都会自动念上一段 『平安经』
    redis主从复制-密码问题
    java远程连接服务器端的redis
    组态王历史趋势图的一些问题
    使用 autofac 实现 asp .net core 的属性注入
    从一切皆数据与计算的角度,理解进程与线程
  • 原文地址:https://www.cnblogs.com/devgis/p/16524621.html
Copyright © 2020-2023  润新知