static public void CompilingHistory() { string script = Path.GetTempFileName(); string scriptAsm = script + ".dll"; CSScript.KeepCompilingHistory = true; try { File.WriteAllText(script, @"using System; using System.Windows.Forms; public class Script { public int Sum(int a, int b) { return a+b; } }"); CSScript.CompileFile(script, scriptAsm, false, null); CompilingInfo info = CSScript.CompilingHistory .Values .FirstOrDefault(item => item.ScriptFile == script); if (info != null) { Console.WriteLine("Script: " + info.ScriptFile); Console.WriteLine("Referenced assemblies:"); foreach (string asm in info.Input.ReferencedAssemblies) { Console.WriteLine(asm); } if (info.Result.Errors.HasErrors) { foreach (CompilerError err in info.Result.Errors) { if (!err.IsWarning) { Console.WriteLine("Error: " + err.ErrorText); } } } } CSScript.CompilingHistory.Clear(); } finally { CSScript.KeepCompilingHistory = false; } }
public void CompileTree(ScriptInfo scriptInfo) { CompilingInfo compilingInfo = new CompilingInfo(); MoveInfo treeInfo = new MoveInfo(this, SearchTree.ChildrenTree, 0, this._sf); IElement cur = treeInfo.Current; while (cur != null) { cur.Compile(treeInfo, scriptInfo, compilingInfo); cur = treeInfo.Move(SearchDirection.LeftToRight); } }
public virtual void Compile(MoveInfo treeInfo, ScriptInfo scriptInfo, CompilingInfo compilingInfo) { throw new InvalidOperationException("WTF?!"); }