コード例 #1
0
        public void Main(string[] args)
        {
            var assemblyReslover = new AspNet5AssemblyResolver(_libraryManager);
            var scriptServicesBuilder =
                new ScriptServicesBuilder(Console, new DefaultLogProvider()).Cache(false).Repl(true);

            scriptServicesBuilder = IsMono ? scriptServicesBuilder.ScriptEngine<MonoScriptEngine>() : scriptServicesBuilder.ScriptEngine<RoslynScriptEngine>();

            ((ScriptServicesBuilder)scriptServicesBuilder).Overrides[typeof (IAssemblyResolver)] = assemblyReslover;

            var scriptcs = scriptServicesBuilder.Build();

            scriptcs.Repl.Initialize(assemblyReslover.GetAssemblyPaths(string.Empty), Enumerable.Empty<IScriptPack>());

            try
            {
                while (ExecuteLine(scriptcs.Repl))
                {
                }

                Console.WriteLine();
            }
            catch (Exception ex)
            {
                var oldColor = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
                Console.ForegroundColor = oldColor;
            }

        }
コード例 #2
0
 static void SetEngine(ScriptServicesBuilder builder)
 {
     var useMono = Type.GetType ("Mono.Runtime") != null;
     if (useMono) {
         builder.ScriptEngine<MonoScriptEngine> ();
     }
     else {
         builder.ScriptEngine<RoslynScriptEngine> ();
     }
 }
コード例 #3
0
        static void SetEngine(ScriptServicesBuilder builder)
        {
            var useMono = Type.GetType("Mono.Runtime") != null;

            if (useMono)
            {
                builder.ScriptEngine <MonoScriptEngine> ();
            }
            else
            {
                builder.ScriptEngine <RoslynScriptEngine> ();
            }
        }
コード例 #4
0
        private void StartScriptCs()
        {
            var name    = "WPFScript.csx";
            var console = new WPFConsoleRelay();

            var configurator = new LoggerConfigurator(LogLevel.Info);

            configurator.Configure(console);
            var logger = configurator.GetLogger();

            var init = new InitializationServices(logger);

            init.GetAppDomainAssemblyResolver().Initialize();

            var builder = new ScriptServicesBuilder(console, logger, null, null, init)
                          .Cache()
                          .Debug(false)
                          .LogLevel(LogLevel.Info)
                          .ScriptName(name)
                          .Repl();

            var modules   = new string[0];
            var extension = Path.GetExtension(name);

            //OVERRIDES
            builder.ScriptHostFactory <WPFScriptHostFactory>();
            builder.ScriptEngine <RoslynScriptEngine>();
            builder.LoadModules(extension, modules);

            //BUILD SERVICE
            _service = builder.Build();
            _service.Executor.Initialize(Enumerable.Empty <string>(), _service.ScriptPackResolver.GetPacks(), new string[0]);
            var types = new Type[] {
                typeof(IConsole),
                typeof(ScriptContext),
                typeof(Newtonsoft.Json.Converters.BinaryConverter)
            };


            _service.Executor.AddReferenceAndImportNamespaces(types);



            EventAggr.Instance.GetEvent <WriteLineEvent>().Subscribe((text) =>
            {
                string[] lines = text.Split(new string[] { Environment.NewLine }, StringSplitOptions.None);
                foreach (var line in lines.Where(l => !string.IsNullOrEmpty(l)))
                {
                    _area.Document.Text += line;
                    NewLine();
                    _area.Document.Text += ">";
                }
            });

            EventAggr.Instance.GetEvent <WriteEvent>().Subscribe((text) =>
            {
                _area.Document.Text += text;
            }
                                                                 );
        }
コード例 #5
0
        public void Main(string[] args)
        {
            var assemblyReslover      = new AspNet5AssemblyResolver(_libraryManager);
            var scriptServicesBuilder =
                new ScriptServicesBuilder(Console, new DefaultLogProvider()).Cache(false).Repl(true);

            scriptServicesBuilder = IsMono ? scriptServicesBuilder.ScriptEngine <MonoScriptEngine>() : scriptServicesBuilder.ScriptEngine <RoslynScriptEngine>();

            ((ScriptServicesBuilder)scriptServicesBuilder).Overrides[typeof(IAssemblyResolver)] = assemblyReslover;

            var scriptcs = scriptServicesBuilder.Build();

            scriptcs.Repl.Initialize(assemblyReslover.GetAssemblyPaths(string.Empty), Enumerable.Empty <IScriptPack>());

            try
            {
                while (ExecuteLine(scriptcs.Repl))
                {
                }

                Console.WriteLine();
            }
            catch (Exception ex)
            {
                var oldColor = Console.ForegroundColor;
                Console.ForegroundColor = ConsoleColor.Red;
                Console.WriteLine(ex.Message);
                Console.ForegroundColor = oldColor;
            }
        }
コード例 #6
0
        private ScriptServices CreateScriptServices()
        {
            var console = new PersonalTrainerConsole();
            ILogProvider logger = new DefaultLogProvider();

            var builder = new ScriptServicesBuilder(console, logger);

            builder.ScriptEngine<RoslynScriptEngine>();

            builder.FileSystem<ScriptFileSystem>();
            return builder.Build();
        }
コード例 #7
0
        private ScriptServices CreateScriptServices()
        {
            var          console = new PersonalTrainerConsole();
            ILogProvider logger  = new DefaultLogProvider();

            var builder = new ScriptServicesBuilder(console, logger);

            builder.ScriptEngine <RoslynScriptEngine>();

            builder.FileSystem <ScriptFileSystem>();
            return(builder.Build());
        }
コード例 #8
0
ファイル: ScriptHost.cs プロジェクト: ryanrousseau/chuck
        private ScriptServices CreateScriptServices(bool useLogging)
        {
            var console = new ScriptConsole();
            var configurator = new LoggerConfigurator(useLogging ? LogLevel.Debug : LogLevel.Info);

            configurator.Configure(console);
            var logger = configurator.GetLogger();
            var builder = new ScriptServicesBuilder(console, logger);

            builder.ScriptEngine<RoslynScriptEngine>();

            return builder.Build();
        }
コード例 #9
0
        public void Initialize()
        {
            var console     = (IConsole) new ScriptConsole();
            var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console);

            var builder = new ScriptServicesBuilder(console, logProvider);

            builder.ScriptEngine <CSharpScriptEngine>();
            var services = builder.Build();

            Executor = (ScriptExecutor)services.Executor;
            Executor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>());
        }
        public ScriptCsExtension(ScriptCsOptions options)
        {
            this.options = options;

            var console     = (IConsole) new ScriptConsole();
            var logProvider = new ColoredConsoleLogProvider(LogLevel.Info, console);

            var builder = new ScriptServicesBuilder(console, logProvider);

            //var useMono = Type.GetType("Mono.Runtime") != null;
            //if (useMono)
            //{
            //    builder.ScriptEngine<MonoScriptEngine>();
            //}
            //else {
            builder.ScriptEngine <CSharpScriptEngine>();
            //}

            scriptServices = builder.Build();

            scriptExecutor = (ScriptExecutor)scriptServices.Executor;
            scriptExecutor.Initialize(Enumerable.Empty <string>(), Enumerable.Empty <IScriptPack>());
        }