zoukankan      html  css  js  c++  java
  • 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);

    这样做的弊端是调试时不方便,如果脚本代码出错或有异常,简单的字符串拼接会使出错代码的行数有可能不正确,查找错误代码时有困难,希望有哪位大侠给出更好的解决办法。

  • 相关阅读:
    24、Index
    23、Constraint and delete
    22、design mode : Normalization
    小米8解锁bl锁一直显示未连接手机的解决办法
    unittest之测试报告系列
    Vue常见问题处理
    Docker安装Jira8
    Docker安装rabbitmq
    docker安装redis
    python3.6默认安装路径修改_centos 7 安装python3 并修改默认的python
  • 原文地址:https://www.cnblogs.com/HopeGi/p/2722308.html
Copyright © 2011-2022 走看看