• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > C#动态执行字符串(动态创建代码)的实例代码

C#动态执行字符串(动态创建代码)的实例代码

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#动态字符串,c#解析json字符串,c#字符串截取,c#字符串转数字,c#字符串分割等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

namespace EvalGuy
{
    /// <summary>
    /// 本类用来将字符串转为可执行文本并执行
    /// 从别处复制,勿随意更改!
    /// </summary>
    public class Evaluator
    {
        #region 构造函数
        /// <summary>
        /// 可执行串的构造函数
        /// </summary>
        /// <param name="items">
        /// 可执行字符串数组
        /// </param>
        public Evaluator(EvaluatorItem[] items)
        {
            ConstructEvaluator(items);        //调用解析字符串构造函数进行解析
        }
        /// <summary>
        /// 可执行串的构造函数
        /// </summary>
        /// <param name="returnType">返回值类型</param>
        /// <param name="expression">执行表达式</param>
        /// <param name="name">执行字符串名称</param>
        public Evaluator(Type returnType, string expression, string name)
        {
            //创建可执行字符串数组
            EvaluatorItem[] items = { new EvaluatorItem(returnType, expression, name) };
            ConstructEvaluator(items);        //调用解析字符串构造函数进行解析
        }
        /// <summary>
        /// 可执行串的构造函数
        /// </summary>
        /// <param name="item">可执行字符串项</param>
        public Evaluator(EvaluatorItem item)
        {
            EvaluatorItem[] items = { item };//将可执行字符串项转为可执行字符串项数组
            ConstructEvaluator(items);        //调用解析字符串构造函数进行解析
        }
        /// <summary>
        /// 解析字符串构造函数
        /// </summary>
        /// <param name="items">待解析字符串数组</param>
        private void ConstructEvaluator(EvaluatorItem[] items)
        {
            //创建C#编译器实例
            ICodeCompiler comp = (new CSharpCodeProvider().CreateCompiler());
            //编译器的传入参数
            CompilerParameters cp = new CompilerParameters();

            cp.ReferencedAssemblies.Add("system.dll");                //添加程序集 system.dll 的引用
            cp.ReferencedAssemblies.Add("system.data.dll");            //添加程序集 system.data.dll 的引用
            cp.ReferencedAssemblies.Add("system.xml.dll");            //添加程序集 system.xml.dll 的引用
            cp.GenerateExecutable = false;                            //不生成可执行文件
            cp.GenerateInMemory = true;                                //在内存中运行

            StringBuilder code = new StringBuilder();                //创建代码串
            /*
             *  添加常见且必须的引用字符串
             */
            code.Append("using System; /n");
            code.Append("using System.Data; /n");
            code.Append("using System.Data.SqlClient; /n");
            code.Append("using System.Data.OleDb; /n");
            code.Append("using System.Xml; /n");

            code.Append("namespace EvalGuy { /n");                    //生成代码的命名空间为EvalGuy,和本代码一样

            code.Append("  public class _Evaluator { /n");            //产生 _Evaluator 类,所有可执行代码均在此类中运行
            foreach (EvaluatorItem item in items)                //遍历每一个可执行字符串项
            {
                code.AppendFormat("    public {0} {1}() ",            //添加定义公共函数代码
                                  item.ReturnType.Name,            

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#动态执行字符串(动态创建代码)的实例代码

相关文章

  • 2017-05-28C#实现根据字节数截取字符串并加上省略号的方法
  • 2017-05-28c#实现网站监控查看是否正常示例
  • 2017-05-28C#将时间转成文件名使用方法
  • 2017-05-28C#使用smtp发送带附件的邮件实现方法
  • 2017-05-28winform分页控件 附源码下载
  • 2017-05-28C#桥接模式完整实例
  • 2017-05-28C#实现简单获取扫码枪信息代码
  • 2017-05-28C#使用DllImport调用非托管的代码的方法
  • 2017-05-28C#中的let字句应用示例
  • 2017-05-28c#版json数据解析示例分享

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • C#中ListView控件实现窗体代码
    • C#实现解析百度天气数据,Rss解析百度新闻以及根据IP获取所在城市的方法
    • C#实现WinForm捕获最小化事件的方法
    • C#中Mutex对象用法分析
    • c# 命名空间和程序集
    • C#运算符重载用法实例分析
    • C#实现在控制台输入密码显示星号的方法
    • C#编程实现对象与JSON串互相转换实例分析
    • c# 两个数组比较,将重复部分去掉,返回不重复部分的实现
    • c# 应用NPOI获取Excel中的图片,保存至本地的算法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有