示例#1
0
        public virtual void CompileToStream()
        {
            if (PreCompiler())
            {
                var          compilation   = GetCompilation();
                MemoryStream stream        = new MemoryStream();
                var          CompileResult = EmitToStream(compilation, stream);


                if (CompileResult.Success)
                {
                    stream.Position = 0;
                    MemoryStream copyStream = new MemoryStream();
                    stream.CopyTo(copyStream);
                    stream.Position = 0;
                    Assembly        = Domain.CompileStreamHandler(stream, AssemblyName);
                    StreamCompileSucceedHandler?.Invoke(copyStream, compilation);
                    copyStream.Dispose();
                }
                else
                {
                    stream.Position = 0;
                    StreamCompileFailedHandler?.Invoke(stream, CompileResult.Diagnostics, compilation);
                }
                stream.Dispose();
            }
        }
示例#2
0
        public virtual void CompileToStream()
        {
            if (PreCompiler())
            {
                var options = GetCompilationOptions();
                OptionAction?.Invoke(options);
                var          compilation   = GetCompilation(options);
                MemoryStream stream        = new MemoryStream();
                var          CompileResult = CompileEmitToStream(compilation, stream);


                if (CompileResult.Success)
                {
                    stream.Seek(0, SeekOrigin.Begin);
                    MemoryStream copyStream = new MemoryStream();
                    stream.CopyTo(copyStream);
                    stream.Seek(0, SeekOrigin.Begin);
                    AssemblyResult = Domain.CompileStreamHandler(stream, AssemblyName);
                    StreamCompileSucceedHandler?.Invoke(copyStream, compilation);
                    copyStream.Dispose();
                }
                else
                {
                    stream.Seek(0, SeekOrigin.Begin);
                    StreamCompileFailedHandler?.Invoke(stream, CompileResult.Diagnostics, compilation);
                }
                stream.Dispose();
            }
        }