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(); } }
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(); } }