【发布时间】:2019-09-30 21:51:02
【问题描述】:
我在 ASP .Net Core 2.2 Web API 中有一项服务。构造函数是异步的,因为它调用异步方法。但是因为构造函数是异步的,所以它会抱怨试图初始化一个属性。
public class MyService
{
private readonly IServiceScopeFactory _serviceScopeFactory;
public async Task MyService(IServiceScopeFactory serviceScopeFactory)
{
this._serviceScopeFactory = serviceScopeFactory;
await DoSomething();
}
}
它给了我这个错误:
“不能将只读字段分配给(在构造函数或变量初始化程序中除外)”
有什么想法吗?
【问题讨论】:
-
你展示的不是构造函数,而是方法。据我记得没有异步构造函数。
-
你所拥有的是一个与其封闭类型同名的异步方法
-
你不能创建异步构造函数。构造函数不返回值。你刚刚创建了一个方法。
-
您可能会发现this article from Stephen Cleary 很有启发性。
-
@FabricioRodriguez:不,你不能有异步构造函数。 There are a few other options, though.
标签: c# .net-core .net-core-2.2