• c# 脚本引擎 脚本编辑器


    SuperScript是C#脚本引擎,它为您的WinForms和WPF应用程序带来了高效的代码编辑功能。

    它提供了代码编辑功能,如语法高亮显示、智能代码提示和代码完成、语法错误,

    它支持类库引用,编译及导出等等,使用它好比您在Visual Studio中编码一样,速度和便利性相媲美。

    使用它,可以极大的发挥您的应用程序扩展和开放性,

    使得您的程序在发布后,也可支持用户自定义编辑和运行脚本。

    以下是扩展简单示例:

    比如您的应用程序有个计算功能,它允许用户根据用户输入值,通过编辑脚本自定义输出结果功能,如实现字符串倒叙功能。

    示例代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    using System.IO;
    using Wagwei.FCL.SuperScript;
    
    namespace TestScript
    {
        public partial class FrmTest : Form
        {
            private CalcBase calcBase = null;
            private WagScriptBuild<CalcBase> build = null;
            private string _script = "";
    
    
            public FrmTest()
            {
                InitializeComponent();
    
                string data = File.ReadAllText(Path.Combine(Application.StartupPath, "demo.wagscript"));
                _script = data;
            }
    
            private void _Load(object sender, EventArgs e)
            {
                build = new WagScriptBuild<CalcBase>(_script);
                calcBase = build.BuildScript(false);
            }
    
            public class CalcBase
            {
                public virtual string Calc(string input)
                {
                    string output = input;
                    return output;
                }
            }
    
            /// <summary>修改脚本</summary>
            private void btn_srcipt_Click(object sender, EventArgs e)
            {
                build.EditExistingScript(true);
    
                string s = build.m_WagScriptSupport.SaveToStr("");
                _script = s;
                calcBase = build.BuildScript(false);
            }
    
            /// <summary>计算</summary>
            private void btn_run_Click(object sender, EventArgs e)
            {
                string input = this.txt_input.Text.Trim();
                string output = this.calcBase.Calc(input);
                this.txt_output.Text = output;
            }          
        }
    }
  • 相关阅读:
    2020.07.01
    2020年5月9日
    2020年4月25日
    2020年4月24日
    2020年4月23日
    2020年4月22日
    2020年3月29日
    2020.3.25
    nacos源码解析(三)-注册中心服务注册处理
    nacos源码解析(二)-客户端如何访问注册中心
  • 原文地址:https://www.cnblogs.com/wang_xy/p/16303750.html
Copyright © 2020-2023  润新知