在我的项目中,我想创建一个处理所有脏Azure工作的类,并提供一个干净的界面,我只是提供要存储的实体。
我尝试在构造函数中创建表但不允许它。我无法确定这种结构有什么问题。
任何想法或替代方式做事?
干杯, 亚历
using System;
using System.Threading.Tasks;
using Microsoft.Azure;
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Table;
namespace MyProject
{
public class AzureStorage
{
public async Task<AzureStorage> AzureStorage()
{
table = await CreateTableAsync("mytable");
}
CloudTable table { get; set; }
}
}
答案 0 :(得分:1)
据我所知,不允许使用异步构造函数。由Stephen Cleary撰写的This blog讨论了这个问题并分享了一些替代方案,请阅读。
异步构造带来了一个有趣的问题。能够在构造函数中使用await会很有用,但这意味着 构造函数必须返回一个表示一个的Task 将来构建的价值,而不是构造的价值 值。这种概念很难融入其中 现有语言。
此外,这个帖子:Can constructors be async?可以帮助你理解异步构造函数问题。