首页 > 代码库 > Script.NET实现脚本库
Script.NET实现脚本库
Script.NET本身没有实现调用脚本库的功能。如果将一堆已经定义好的函数放在一个脚本文件里头作为脚本库,要调用这个脚本库时只需要稍作改动就行。
首先建立一个XML文档专门存放哪个脚本会调用哪些库,结构如下
<?xml version="1.0" encoding="utf-8" ?> <LibMapping> <MainScript scriptName=""> <LibScript libFileName=""/> </MainScript> </LibMapping>
例如:
<?xml version="1.0" encoding="utf-8" ?> <LibMapping> <MainScript scriptName="script1.txt"> <LibScript libFileName="lib1.txt"/> <LibScript libFileName="lib3.txt"/> </MainScript> <MainScript scriptName="script2.txt"> <LibScript libFileName="lib1.txt"/> <LibScript libFileName="lib2.txt"/> </MainScript> </LibMapping>
然后在执行脚本之前分析XML,通过scriptName属性找出它需要调用的脚本库,利用IO操作读取脚本库文件并添加到脚本的字符串中,代码如下
string script = string.Empty; script += File.ReadAllText("script1.txt")+"\n";//读取脚本文件 string libScript = string.Empty; //分析XML文件 XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load("LibMapping.xml"); XmlNode mainNode = xmlDoc.SelectSingleNode(string.Format("//LibMapping/MainScript[@scriptName=‘{0}‘]", "script1.txt")); if (mainNode != null) { XmlNodeList libList = mainNode.ChildNodes; //读取脚本库 foreach (XmlNode node in libList) { string fileName = node.Attributes["libFileName"].Value; libScript += File.ReadAllText( fileName) + "\n"; } } script+= libScript;
Script s = Script.Compile(script);
这样做的弊端是调试时不方便,如果脚本代码出错或有异常,简单的字符串拼接会使出错代码的行数有可能不正确,查找错误代码时有困难,希望有哪位大侠给出更好的解决办法。
Script.NET实现脚本库
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。