C# 在C中读取二进制类型的Azure Blob#

C# 在C中读取二进制类型的Azure Blob#,c#,azure-storage-blobs,C#,Azure Storage Blobs,下面是我试图返回blob内容的代码。我可以使用DownloadTextAsync读取文件并返回内容,但如果blob是二进制类型,我的代码将失败,因此我希望读取流,然后在返回字符串之前执行文本读取器方法。我无法做到这一点,想一些建议,以完成以下代码。使用下面的代码,我在“recJson”中得到空值,没有错误 public async Task<Stream> DownloadBlob(string containerName, string fileName, string conne

下面是我试图返回blob内容的代码。我可以使用DownloadTextAsync读取文件并返回内容,但如果blob是二进制类型,我的代码将失败,因此我希望读取流,然后在返回字符串之前执行文本读取器方法。我无法做到这一点,想一些建议,以完成以下代码。使用下面的代码,我在“recJson”中得到空值,没有错误

public async Task<Stream> DownloadBlob(string containerName, string fileName, string connectionString)
        {
            
            if (string.IsNullOrEmpty(connectionString))
            {
                connectionString = @"UseDevelopmentStorage=true";
                containerName = "testblobs";
            }
            var result = new MemoryStream();
            Microsoft.Azure.Storage.CloudStorageAccount storageAccount = Microsoft.Azure.Storage.CloudStorageAccount.Parse(connectionString);
            CloudBlobClient serviceClient = storageAccount.CreateCloudBlobClient();
            CloudBlobContainer container = serviceClient.GetContainerReference(containerName);
            CloudBlockBlob blob = container.GetBlockBlobReference(fileName);
            if (blob.Exists())
            {//DownloadAsync
                using (result = new MemoryStream())
                {

                   await blob.DownloadToStreamAsync(result);
                   var result1 = result.ToArray();
                   using var reader = new StreamReader(result);

                    var recJson = reader.ReadToEnd();

                }
public async Task DownloadBlob(string containerName、string fileName、string connectionString)
{
if(string.IsNullOrEmpty(connectionString))
{
connectionString=@“UseDevelopmentStorage=true”;
containerName=“testblobs”;
}
var结果=新的MemoryStream();
Microsoft.Azure.Storage.CloudStorageAccount-storageAccount=Microsoft.Azure.Storage.CloudStorageAccount.Parse(connectionString);
CloudBlobClient serviceClient=storageAccount.CreateCloudBlobClient();
CloudBlobContainer container=serviceClient.GetContainerReference(containerName);
CloudBlockBlob blob=container.GetBlockBlobReference(文件名);
if(blob.Exists())
{//下载异步
使用(结果=新的MemoryStream())
{
等待blob.DownloadToStreamAsync(结果);
var result1=result.ToArray();
使用var reader=新的StreamReader(结果);
var recJson=reader.ReadToEnd();
}

我怀疑,在下载到
内存流之后,该流的位置在末尾,因此
StreamReader
没有什么可读取的内容。请在
reader.ReadToEnd()之前尝试
result.position=0;
,它表示结果中未激活