コード例 #1
0
ファイル: ConnectionContext.cs プロジェクト: ivlists/KRuntime
 public ConnectionContext(IServiceProvider services, IAssemblyLoaderEngine loaderEngine, Stream stream, string hostId)
 {
     _services     = services;
     _loaderEngine = loaderEngine;
     _stream       = stream;
     _hostId       = hostId;
 }
コード例 #2
0
ファイル: RoslynCompilationService.cs プロジェクト: Nakro/Mvc
 public RoslynCompilationService(IApplicationEnvironment environment,
                                 IAssemblyLoaderEngine loaderEngine,
                                 ILibraryManager libraryManager)
 {
     _environment = environment;
     _loader = loaderEngine;
     _libraryManager = libraryManager;
 }
コード例 #3
0
 public ProjectAssemblyLoader(IProjectResolver projectResovler,
                              IAssemblyLoaderEngine loaderEngine,
                              ILibraryManager libraryManager)
 {
     _projectResolver = projectResovler;
     _loaderEngine    = loaderEngine;
     _libraryManager  = libraryManager;
 }
コード例 #4
0
 public RoslynCompilationService(IApplicationEnvironment environment,
                                 IAssemblyLoaderEngine loaderEngine,
                                 ILibraryManager libraryManager)
 {
     _environment    = environment;
     _loader         = loaderEngine;
     _libraryManager = libraryManager;
 }
コード例 #5
0
 /// <summary>
 /// Initalizes a new instance of the <see cref="RoslynCompilationService"/> class.
 /// </summary>
 /// <param name="environment">The environment for the executing application.</param>
 /// <param name="loaderEngine">The loader used to load compiled assemblies.</param>
 /// <param name="libraryManager">The library manager that provides export and reference information.</param>
 public RoslynCompilationService(IApplicationEnvironment environment,
                                 IAssemblyLoaderEngine loaderEngine,
                                 ILibraryManager libraryManager)
 {
     _environment           = environment;
     _loader                = loaderEngine;
     _libraryManager        = libraryManager;
     _applicationReferences = new Lazy <List <MetadataReference> >(GetApplicationReferences);
 }
コード例 #6
0
        public Assembly Load(IAssemblyLoaderEngine loaderEngine)
        {
            using (var pdbStream = new MemoryStream())
                using (var assemblyStream = new MemoryStream())
                {
                    IList <ResourceDescription> resources = GetResources();

                    Trace.TraceInformation("[{0}]: Emitting assembly for {1}", GetType().Name, Name);

                    var sw = Stopwatch.StartNew();

                    EmitResult emitResult = null;

                    if (PlatformHelper.IsMono)
                    {
                        // Pdbs aren't supported on mono
                        emitResult = CompilationContext.Compilation.Emit(assemblyStream, manifestResources: resources);
                    }
                    else
                    {
                        emitResult = CompilationContext.Compilation.Emit(assemblyStream, pdbStream: pdbStream, manifestResources: resources);
                    }

                    sw.Stop();

                    Trace.TraceInformation("[{0}]: Emitted {1} in {2}ms", GetType().Name, Name, sw.ElapsedMilliseconds);

                    var diagnostics = CompilationContext.Diagnostics.Concat(
                        emitResult.Diagnostics);

                    var result = CreateDiagnosticResult(emitResult.Success, diagnostics);

                    if (!result.Success)
                    {
                        throw new CompilationException(result.Errors.ToList());
                    }

                    Assembly assembly = null;

                    // Rewind the stream
                    assemblyStream.Seek(0, SeekOrigin.Begin);
                    pdbStream.Seek(0, SeekOrigin.Begin);

                    if (pdbStream.Length == 0)
                    {
                        assembly = loaderEngine.LoadStream(assemblyStream, pdbStream: null);
                    }
                    else
                    {
                        assembly = loaderEngine.LoadStream(assemblyStream, pdbStream);
                    }

                    return(assembly);
                }
        }
コード例 #7
0
 public EntityFrameworkServices(
     [NotNull] ILibraryManager libraryManager,
     [NotNull] IApplicationEnvironment environment,
     [NotNull] IAssemblyLoaderEngine loader,
     [NotNull] IModelTypesLocator modelTypesLocator,
     [NotNull] IDbContextEditorServices dbContextEditorServices)
 {
     _libraryManager          = libraryManager;
     _environment             = environment;
     _loader                  = loader;
     _modelTypesLocator       = modelTypesLocator;
     _dbContextEditorServices = dbContextEditorServices;
 }
コード例 #8
0
ファイル: CommonUtilities.cs プロジェクト: nsavga/Scaffolding
        public static CompilationResult GetAssemblyFromCompilation(
            IAssemblyLoaderEngine loader,
            Compilation compilation)
        {
            EmitResult result;

            using (var ms = new MemoryStream())
            {
                using (var pdb = new MemoryStream())
                {
                    if (PlatformHelper.IsMono)
                    {
                        result = compilation.Emit(ms, pdbStream: null);
                    }
                    else
                    {
                        result = compilation.Emit(ms, pdbStream: pdb);
                    }

                    if (!result.Success)
                    {
                        var formatter     = new DiagnosticFormatter();
                        var errorMessages = result.Diagnostics
                                            .Where(IsError)
                                            .Select(d => formatter.Format(d));

                        return(CompilationResult.FromErrorMessages(errorMessages));
                    }

                    ms.Seek(0, SeekOrigin.Begin);

                    Assembly assembly;
                    if (PlatformHelper.IsMono)
                    {
                        assembly = loader.LoadStream(ms, pdbStream: null);
                    }
                    else
                    {
                        pdb.Seek(0, SeekOrigin.Begin);
                        assembly = loader.LoadStream(ms, pdb);
                    }

                    return(CompilationResult.FromAssembly(assembly));
                }
            }
        }
コード例 #9
0
        public Assembly Load(IAssemblyLoaderEngine loaderEngine)
        {
            using (var pdbStream = new MemoryStream())
            using (var assemblyStream = new MemoryStream())
            {
                IList<ResourceDescription> resources = GetResources();

                Trace.TraceInformation("[{0}]: Emitting assembly for {1}", GetType().Name, Name);

                var sw = Stopwatch.StartNew();

                EmitResult emitResult = null;

                if (PlatformHelper.IsMono)
                {
                    // Pdbs aren't supported on mono
                    emitResult = CompilationContext.Compilation.Emit(assemblyStream, manifestResources: resources);
                }
                else
                {
                    emitResult = CompilationContext.Compilation.Emit(assemblyStream, pdbStream: pdbStream, manifestResources: resources);
                }

                sw.Stop();

                Trace.TraceInformation("[{0}]: Emitted {1} in {2}ms", GetType().Name, Name, sw.ElapsedMilliseconds);

                var diagnostics = CompilationContext.Diagnostics.Concat(
                    emitResult.Diagnostics);

                var result = CreateDiagnosticResult(emitResult.Success, diagnostics);

                if (!result.Success)
                {
                    throw new CompilationException(result.Errors.ToList());
                }

                Assembly assembly = null;

                // Rewind the stream
                assemblyStream.Seek(0, SeekOrigin.Begin);
                pdbStream.Seek(0, SeekOrigin.Begin);

                if (pdbStream.Length == 0)
                {
                    assembly = loaderEngine.LoadStream(assemblyStream, pdbStream: null);
                }
                else
                {
                    assembly = loaderEngine.LoadStream(assemblyStream, pdbStream);
                }

                return assembly;
            }
        }
コード例 #10
0
 public Program(IServiceProvider services, IAssemblyLoaderEngine loaderEngine)
 {
     _services     = services;
     _loaderEngine = loaderEngine;
 }
コード例 #11
0
 public Assembly Load(IAssemblyLoaderEngine loaderEngine)
 {
     return(loaderEngine.LoadFile(_assemblyPath));
 }
コード例 #12
0
 public PathBasedAssemblyLoader(IAssemblyLoaderEngine loaderEngine, string[] searchPaths)
 {
     _loaderEngine = loaderEngine;
     _searchPaths = searchPaths;
 }
コード例 #13
0
ファイル: Bootstrapper.cs プロジェクト: jack4it/KRuntime
 public Bootstrapper(IAssemblyLoaderContainer container,
                     IAssemblyLoaderEngine loaderEngine)
 {
     _container = container;
     _loaderEngine = loaderEngine;
 }
コード例 #14
0
 public PathBasedAssemblyLoader(IAssemblyLoaderEngine loaderEngine, string[] searchPaths)
 {
     _loaderEngine = loaderEngine;
     _searchPaths  = searchPaths;
 }
コード例 #15
0
 public Assembly Load(IAssemblyLoaderEngine loaderEngine)
 {
     return loaderEngine.LoadFile(_assemblyPath);
 }
コード例 #16
0
ファイル: Bootstrapper.cs プロジェクト: ivlists/KRuntime
 public Bootstrapper(IAssemblyLoaderContainer container,
                     IAssemblyLoaderEngine loaderEngine)
 {
     _container    = container;
     _loaderEngine = loaderEngine;
 }
コード例 #17
0
 public NuGetAssemblyLoader(IAssemblyLoaderEngine loaderEngine, NuGetDependencyResolver dependencyResolver)
 {
     _dependencyResolver = dependencyResolver;
     _loaderEngine       = loaderEngine;
 }
コード例 #18
0
 public ApplicationContext(IServiceProvider services, IAssemblyLoaderEngine loaderEngine, int id)
 {
     _hostServices = services;
     _loaderEngine = loaderEngine;
     Id            = id;
 }