Blazor 支持将数据直接从 .NET 流式传输到 JavaScript。 流是使用 DotNetStreamReference 创建的。

DotNetStreamReference 表示 .NET 流,并使用以下参数:

  • stream:发送到 JavaScript 的流。
  • leaveOpen:确定传输后流是否保持打开状态。 如果未提供值,则 leaveOpen 默认为 false

在 JavaScript 中,使用数组缓冲区或可读流接收数据:

使用 ArrayBuffer

async function streamToJavaScript(streamRef) {
  const data = await streamRef.arrayBuffer();
}

使用 ReadableStream

async function streamToJavaScript(streamRef) {
  const stream = await streamRef.stream();
}

在 C# 代码中:

using var streamRef = new DotNetStreamReference(stream: {STREAM}, leaveOpen: false);
await JS.InvokeVoidAsync("streamToJavaScript", streamRef);

在上面的示例中:

  • {STREAM} 占位符表示发送到 JavaScript 的 Stream
  • JS 是一个注入的 IJSRuntime 实例。