我正在设置一个API来接收来自一个web钩子的通知,这个钩子没有为对象提供统一的形状。我知道一些常见的属性可以帮助我正确地路由通知,但仅此而已。我目前的解决方案是接受JsonDocument
作为我的action方法中的参数;但是,我想确保我正确地处理了这些。我的代码现在看起来像这样:
[HttpPost]
[Route("notify")]
public IActionResult ReceiveNotification(JsonDocument notification)
{
// Grab some information from the JsonDocument...
notification.Dispose(); // Is it necessary to call this?
return Ok("All done!");
}
notification
会被自动处理还是需要我自己处理?
Docs如何使用JSON文档...不要把它作为动作的输入,但要在某处强调Dispose
的重要性。我猜问这个问题的另一种方式是,模型绑定是否“转移生命周期所有权并处置责任”到我的动作代码?
1条答案
按热度按时间rsaldnfx1#
简单地说,答案是否定的。一旦它超出范围,GC就会收集它(如果没有任何东西保留它)。
最佳实践是在所有可处置示例超出范围之前处置它们。
您可以在
using
语句中使用notification
,以确保在它超出范围之前将其释放。