У меня есть класс обслуживания, которые включают в себя метод, называемый GetContainer,Можно ли сделать объект CloudBlobContainer переходным?
private CloudBlobContainer GetContainer(string blobConnectionString, string blobContainerName)
{
var storageAccount = CloudStorageAccount.Parse(blobConnectionString);
var blobClient = storageAccount.CreateCloudBlobClient();
return blobClient.GetContainerReference(blobContainerName);
}
теперь от службы метод вызывающей этого метода каждый раз, когда это необходимо для выполнения операции, как,
public Task CopyAsync(string blobConnectionString, string blobContainerName, string sourceFile, string destinationFile)
{
var container = GetContainer(blobConnectionString, blobContainerName);
return CopyInternalAsync(container, sourceFile, destinationFile);
}
private Task CopyInternalAsync(CloudBlobContainer container, string sourceFile, string destinationFile)
{
var sourceBlob = container.GetBlockBlobReference(sourceFile);
var destinationBlob = container.GetBlockBlobReference(destinationFile);
return destinationBlob.StartCopyFromBlobAsync(sourceBlob);
}
я могу сделать CloudBlobContainer singleton, как образец web-api, делает это here. Но проблема в том, что моя строка blob-connection и имя-контейнера не исправлены. Должен ли я использовать ConcurrentDictionary или это прекрасно, чтобы сделать CloudBlobContainer переходным?