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;
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
 public virtual void Compile(MoveInfo treeInfo, ScriptInfo scriptInfo, CompilingInfo compilingInfo)
 {
     throw new InvalidOperationException("WTF?!");
 }