CS-Script.Core C#通过读取文本实现动态脚本
安装包 CS-Script.Core
编写脚本 工艺文件1.txt
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using ConsoleApp2; //注意不能有命名空间 public class 工艺文件1 : IStep { public 工艺文件1() { } public void AddStep(List<StepInfo> stepInfos) { stepInfos.Add(new StepInfo { Name = "测试1", Time = 1234 }); stepInfos.Add(new StepInfo { Name = "测试2", Time = 345 }); stepInfos.Add(new StepInfo { Name = "测试3", Time = 3452 }); stepInfos.Add(new StepInfo { Name = "测试4", Time = 3453 }); } }
文件放置位置
代码1
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp2 { public interface IStep { void AddStep(List<StepInfo> stepInfos); } public class StepInfo { public string Name { get; set; } public int Time { get; set; } } }
代码2
using Lib; using Microsoft.VisualBasic; using System; using System.Collections.Generic; using System.Threading; namespace ConsoleApp2 { public class Program { private static void Main(string[] args) { string path = AppDomain.CurrentDomain.BaseDirectory + "工艺文件1.txt"; string res = File.ReadAllText(path); IStep script = CSScript.Evaluator .LoadCode<IStep>(res); List<StepInfo> stepInfos = new List<StepInfo>(); script.AddStep(stepInfos);
foreach (StepInfo stepInfo in stepInfos)
{
Console.WriteLine(stepInfo.Name + " " + stepInfo.Time);
}
}
}
}
测试
测试了一下比ironpython 快
github完整使用教程:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
2021-12-12 C# 多线程等待子线程结束 Task.Factory
2021-12-12 C# 多线程等待子线程全部完成 ThreadPool