从IronPython加载多个脚本,执行并允许它们实时访问函数

时间:2014-10-28 15:44:09

标签: c# ironpython

我目前正在使用我的Bot阅读聊天,并允许人们使用IronPython编写这些命令的脚本,但目前我遇到了问题。

它不会加载脚本,如果是,它不会读取命令或只是崩溃整个过程。

以下是代码:

public class ScriptEngine {
     private static ScriptEngine e = Python.CreateEngine();
     private static ScriptScope s = null;
     public static async void LoadScripts() {
         if (!Directory.Exists("scripts"))
             Directory.CreateDirectory("scripts");
         s = e.CreateScope();
         var paths = e.GetSearchPaths();
         paths.Add("scripts");
         e.SetSearchPaths(paths);
         Directory.GetFiles(".", "*.py")
             .ToList()
             .ForEach(f => e.ExecuteFile(f, s));
     }
 }
 public class ReadCommand {
     public string CommandName { get; set; }
     public ReadCommand(string c) { c = CommandName; }
     public string ReadCommand() {
         while (true) {
             if (File.Exists(@"logs\current.log")) {
                 var ln = File.ReadLines(@"logs\current.log").Last();
                 return CommandParse(ln);
             }
             return null;
         }
         return null;
     }
 }

编辑 Script1.py

from Nomishi import *
def testcommand():
    ReadCommand("!name", "Hello from Python!")
testcommand()

我将如何解决此问题?我尝试在两种方法中使用foreach()语句,但似乎没有任何效果。

0 个答案:

没有答案