猿问

DownloadToStreamAsync返回空流C#

我正在尝试从Azure上的blob帐户下载blob文件作为字节数组。我做这个


 var blockBlob = blobContainer.GetBlockBlobReference(id);


                using (var mStream = new MemoryStream())

                {

                    blockBlob.DownloadToStreamAsync(mStream);

                    result = mStream.ToArray();

                }

上面的代码向我返回了一个空流。我的azure blob帐户中确实有该文件,并且检查了代码生成的uri,这与我的azure blob上要作为字节数组下载的文件上的uri相同。


有没有更好的方法在c#中将azure blob文件下载为字节数组?


慕码人2483693
浏览 275回答 2
2回答

慕田峪4524236

您应该等待异步操作完成。          using (var mStream = new MemoryStream())            {                 await  blockBlob.DownloadToStreamAsync(mStream);                 result = mStream.ToArray();            }您之所以空虚,是因为您试图在尚无价值时从中获取价值。

暮色呼如

供您参考的两个选项正如@Gaurav所说,请使用await blockBlob.DownloadToStreamAsync(mStream)注意,public async Task methodname()如果使用此方法,则应将方法更改为。仅blockBlob.DownloadToStream(mStream)在不需要异步方法的情况下使用。给你一些参考
随时随地看视频慕课网APP
我要回答