在C#中的类构造函数中调用异步方法

4

目前我正在使用C#开发通用应用程序。

在应用程序中,我使用SQLite作为数据库,正如您可能已经知道的那样,它具有异步方法。

我有一个带有一些空属性的类,我将使用从数据库中获取的数据填充它们,但是必须在类构造函数中完全完成。

问题是不允许在构造函数中使用异步方法。因此,我尝试创建一个新的异步方法,并在其中使用SQLite方法并填充属性,以便在构造函数中同步调用它,但是像您可能预期的那样,它不能很好地工作。

如何在类构造函数中使用异步方法以获取来自数据库的数据并直接在类构造函数方法中填充类属性?

更新:请注意,我不是在询问是否可以完成此操作,而是要在类构造函数中使用来自数据库的数据初始化我的类变量。


请展示你目前的代码。你收到了错误信息吗?是什么错误信息? - Robert Harvey
不,我没有收到任何错误信息,实际上我什么也没得到或是空的。 - RaminMT
1个回答

9

不要这样做

构造函数应该只是构造函数,将复杂的初始化工作放到初始化方法中去。

构造函数有一定的优雅失败能力,因此不要在其中进行任何复杂、长时间运行或脆弱的操作。


@RobertHarvey:感谢提供链接!我仍然认为这是个坏主意 ;) - Steven A. Lowe
A.Lowe:亲爱的,我已经提到过我尝试了你的建议,但是它并没有按照预期工作。 - RaminMT
1
@RaminMT:我认为你误解了:我建议你不要从构造函数中这样做 - Steven A. Lowe
我明白你的意思,但我认为这应该被称为“构造”! - RaminMT
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Steven A. Lowe

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接