我正在使用ASP.NET Core,内置依赖注入和asp.net标识。依赖注入UserManager正在处理异步调用(ASP.NET CORE)
我遇到的问题是每当我尝试访问任何上下文的异步(即在此示例中为UserManager<ApplicationUser>
)时,它在访问时将被处置。
例如,我的控制器低于(我们所关注的对象是UserManager
)
private readonly ApplicationDbContext _dbContext;
private readonly UserManager<ApplicationUser> _userManager;
private readonly ViewRender _view;
private readonly IConfiguration _config;
public UserController(ApplicationDbContext dbContext,
UserManager<ApplicationUser> userManager,
ViewRender view,
IConfiguration config)
{
this._dbContext = dbContext;
this._userManager = userManager;
this._view = view;
this._config = config;
}
通知之_userManager
正在使用startup.cs
Visual Studio的模板默认设置现在注入在此控制器中的一种方法中,我尝试以下操作:
[HttpDelete]
public async void Delete(string id)
{
var user = _userManager.Users.Where(a => a.Id == id).FirstOrDefault();
user.Deleted = true;
var result= await _userManager.UpdateAsync(user);
}
但是当await _userManager.UpdateAsync(user)
被击中时,它会调用“对象已配置”错误。我对异步/等待的理解是执行会在等待时停止?因此,控制器在完成之前不应该处理对象_userManager
? (显然,这个逻辑是错误的)
它的工作原理是不使用aysnc方法并调用_userManager.UpdateAsync(user).Result;
但想了解aysnc溶液/等待
重构删除操作是是'异步塔斯k删除(string id){... return Ok(); }' –
Nkosi
但在这种特殊情况下,我不希望该方法返回任何东西? – michael
然后使用'异步任务'这意味着一个无效的方法 – Nkosi