public string ExecuteLine(string code, Context context) { try { if (EvaluateScriptsCache.ContainsKey(code)) { return(EvaluateScriptsCache[code].Evaluate(context).ToString()); } string codeString = @"using System; using System.IO; using CameraControl.Devices; using Capture.Workflow.Core.Scripting; using Capture.Workflow.Core.Classes; public class Script:IEvaluateScript { " + GetVariables(context.WorkFlow) + "\n" + @" public object Evaluate(Context context) { " + GetVariablesAssign(context.WorkFlow, "context") + "\n return " + code + ";\n"; codeString += @" } }"; IEvaluateScript script = (IEvaluateScript)CSScript.Evaluator .LoadCode(codeString); EvaluateScriptsCache.Add(code, script); return(script.Evaluate(context).ToString()); } catch (Exception e) { Log.Debug("Invalid script ", e); } return(""); }
public void ClearCache() { EvaluateScriptsCache.Clear(); }