在我的应用程序中,我想要容器的所有 blob,但在我的代码中(如下所示),CloudBlobContainer 变量容器中没有 Listblob() 方法。我错过了什么吗?
var credentials = new StorageCredentials("xxx", "a37bijfRGGdgaVU+ITEIi0Cp1VrbzMM7Bc9PbMOw2FPAz9twgR+lbTzqGhBfHeJe7UfEp4CXtLxqY5Ek0/5zdg==");
var client = new CloudBlobClient(new Uri("https://xxx.blob.core.windows.net/"), credentials);
var container = client.GetContainerReference("publicimage");
//this container variable has not ListBlobs() method
foreach(IListBlobItem item in container.ListBlobsSegmentedAsync())
{
}
最佳答案
ListBlobs 是一种同步方法,因此在不支持同步方法(例如 Windows Phone)的平台上缺失。原因是在 UI 线程上调用同步方法会阻塞 UI 并使应用程序无响应。
另一种方法是使用 *Async 重载。但是,请注意,没有 ListBlobsAsync,因为 .NET 中没有 IEnumerable 的异步对应项。所以,你应该调用ListBlobsSegmentedAsync并处理它返回的继续 token 。
如果您想查看示例用法,我建议您查看 Azure 存储客户端库的单元测试(请参阅 CloudBlobContainerTest.cs 中的测试 CloudBlobContainerListBlobsSegmentedAsync)。
关于c# - 在 CloudBlobContainer 中找不到 Listblob(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396460/