Example #1
0
            public SourceCodeBundle(ScriptBundleLoader manager, IEnumerable <string> sourceCodes)
            {
                //this.manager = manager;

                var domain = System.AppDomain.CurrentDomain;

                this.assemblyReferences = domain
                                          .GetAssemblies()
                                          .Where(a => !(a is System.Reflection.Emit.AssemblyBuilder) && !string.IsNullOrEmpty(a.Location))
                                          .Select(a => a.Location)
                                          .ToArray();

                var options = new CompilerParameters();

                options.GenerateExecutable = false;
                options.GenerateInMemory   = true;
                options.ReferencedAssemblies.AddRange(assemblyReferences);

                var compiler = new CodeCompiler();

                var result = compiler.CompileAssemblyFromSourceBatch(options, sourceCodes.ToArray());

                foreach (var err in result.Errors)
                {
                    manager.actLog(err.ToString());
                }

                this._assembly = result.CompiledAssembly;
            }
Example #2
0
            public ScriptBundleFiles(ScriptBundleLoader manager, IEnumerable <string> filePaths)
            {
                this.filePaths = filePaths.Select(x => Path.GetFullPath(x));
                this.manager   = manager;

                var domain = System.AppDomain.CurrentDomain;

                this.assemblyReferences = domain
                                          .GetAssemblies()
                                          .Where(a => !(a is System.Reflection.Emit.AssemblyBuilder) && !string.IsNullOrEmpty(a.Location))
                                          .Select(a => a.Location)
                                          .ToArray();

                manager.actLog("loading " + string.Join(", ", filePaths.ToArray()));
                CompileFiles();
                //CreateFileWatchers();
                //CreateNewInstances();
            }
Example #3
0
            void CompileFiles()
            {
                filePaths = filePaths.Where(x => File.Exists(x)).ToArray();

                var options = new CompilerParameters();

                options.GenerateExecutable = false;
                options.GenerateInMemory   = true;
                options.ReferencedAssemblies.AddRange(assemblyReferences);

                var compiler = new CodeCompiler();

                var result = compiler.CompileAssemblyFromFileBatch(options, filePaths.ToArray());

                foreach (var err in result.Errors)
                {
                    manager.actLog(err.ToString());
                }

                this._assembly = result.CompiledAssembly;
            }