【发布时间】:2021-08-01 00:24:18
【问题描述】:
您好,我了解注入服务的生命周期,例如在请求完成后服务不可用的作用域。但是参数(如示例中的 myObject)何时被销毁?如果我将此参数传递给长异步任务并且我不等待结果,我可能会在任务中遇到一些 null 问题?
public class mycontroller : ControllerBase
{
private MyService _myservice;
public mycontroller(MyService myservice)
{
_myservice = myservice;
}
[HttpPost]
public IActionResult Post([FromBody] MyObject myObject)
{
_myservice.dosomethinglongasync(myObject);
return OK();
}
}
【问题讨论】:
-
正常的 .net 对象生命周期规则适用。一旦没有更多引用,实例就会被 GC。至于如何在 asp.net 核心中发生火灾/忘记,other already asked and answered questions 上有关于 Stack Overflow 的内容。