c# 脚本引擎 脚本编辑器

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

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

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

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

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

下载地址:

(1)脚本DEMO-集成示例

链接:https://pan.baidu.com/s/1RKt-6ybRSxmDLFtFJRE_qA

提取码:1057

(2)脚本DEMO-编译版

链接:https://pan.baidu.com/s/1hkHJ5UUW28Ui2kromvQCsw

提取码:ff9z



以下是扩展简单示例:

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


示例代码:

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;

        }         

    }

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容