Může gRPC server stream vrátit Proud do Blazor Wasm místo IAsyncEnumerable<T>?

0

Otázka

Potřebuji přenášet soubor z ASP.NET Jádro Blazor WASM pomocí gRPC.

Chtěl bych použít nový třídy DotNetStreamReference přidáno v net6 umožnit stream přímo na disk pomocí JSInterop (viz https://docs.microsoft.com/en-us/aspnet/core/blazor/file-downloads?view=aspnetcore-6.0).

Nyní je problém: gRPC metoda stream data vrací IAsyncEnumerable<T>, ale DotNetStreamReference třída akceptovat pouze Stream objekt jako vstup.

Existuje způsob, jak převést IAsyncEnumerable<byte[]> na Stream nebo se nakonec vrátí Stream z gRPC zavolat?

Díky

.net-6.0 blazor c# filestream
2021-11-23 15:53:38
1

Nejlepší odpověď

0

Nejsem si jistý, o gRPC část, ale pro "převést" otázka, rozhodně:

var streamContent = new byte[] {};
await foreach(var chunk in your_iasyncenumerable)
{
    streamContent.Concat(chunk);
} 
2021-11-23 16:19:13

smyčky a vytvořit bajtové pole není můj cíl, chci, aby se stream do souboru na disk, aby se zachovala přidělování paměti.
Claudio

Chcete stream soubor do FileStream spíše než MemoryStream
Ergis

V jiných jazycích

Tato stránka je v jiných jazycích

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................