C# Azure blob存储下载TextAsync与BlobRequestOptions

C# Azure blob存储下载TextAsync与BlobRequestOptions,c#,azure,azure-storage-blobs,C#,Azure,Azure Storage Blobs,使用azure blob存储和azure SDK,我目前正在下载如下字符串: var storageAccount = CloudStorageAccount.Parse(connectionString); var blobClient = storageAccount.CreateCloudBlobClient(); var container = blobClient.GetContainerReference(containerName); var blockBlob = contain

使用azure blob存储和azure SDK,我目前正在下载如下字符串:

var storageAccount = CloudStorageAccount.Parse(connectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(blobUid);
var text = await blockBlob.DownloadTextAsync();
我想传入一个blobRequestOptions来设置一个自定义重试策略,使其看起来像这样:

var storageAccount = CloudStorageAccount.Parse(connectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
var container = blobClient.GetContainerReference(containerName);
var blockBlob = container.GetBlockBlobReference(blobUid);
var blobRequestOptions = new BlobRequestOptions()
{
     RetryPolicy = new ExponentialRetry(TimeSpan.FromSeconds(5), 3)
};

var text await blockBlob.DownloadTextAsync(encoding, accessCondition, blobRequestOptions, operationContext);
我的问题是我不确定为编码、访问条件或操作上下文传递什么。我查看了文档()并进行了大量搜索,但我不知道要传递什么

编码:我的数据在Us En中只是json,所以我认为我可以使用ACSII或UTF-8,但我找不到azure是否有我应该使用的默认值

AccessCondition和OperationContext:不知道我应该传递什么


或者,也许有更好的方法来完成我想做的事情,而不必使用重载的DownloadTextAsync。

当我遇到这样的问题时,我很幸运SDK是开源的,我通常会查看源代码。 Azure存储SDK的源代码如下:

这就是您正在调用的方法:

public virtual Task<string> DownloadTextAsync(CancellationToken cancellationToken)
{
   return AsyncExtensions.TaskFromApm(this.BeginDownloadText, this.EndDownloadText, cancellationToken);
}

您可以看到,它们显式地为编码、accessCondition和operationContext指定了
null
值。如果需要,您可以进一步深入,但我想说,对于不需要的参数,您可以使用
null

您可以尝试不带这些参数的重载,或者您可以搜索msdn中的每个参数,例如,Accesscondition有这么多枚举选项,这很有趣,我一直忘了微软的东西是开源的。谢谢。这是一个勇敢的新世界:)很乐意帮忙。
public virtual ICancellableAsyncResult BeginDownloadText(AsyncCallback callback, object state)
{
    return this.BeginDownloadText(null /* encoding */, null /* accessCondition */, null /* options */, null /* operationContext */, callback, state);
}