Exemplo n.º 1
0
        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("");
        }
Exemplo n.º 2
0
 public void ClearCache()
 {
     EvaluateScriptsCache.Clear();
 }