Jos*_*osh 19

每次FormFile创建一个新的默认实现称为: https: //github.com/dotnet/aspnetcore/blob/033b1fb1cf681ea95d3954c08e4391c93cd72683/src/Http/Http/src/FormFile.cs#L81ReferenceReadStreamOpenReadStream()

ReferenceReadStream不包含任何非托管资源。调用Dispose它本质上是一个空操作。 https://github.com/dotnet/aspnetcore/blob/033b1fb1cf681ea95d3954c08e4391c93cd72683/src/Http/Http/src/Internal/ReferenceReadStream.cs#L14

考虑到这一点,IFormFile.OpenReadStream()不需要处理。但丢弃它也不会造成任何伤害。

  • 我喜欢这个答案,但就像你说的,“处置不会造成任何伤害”,所以我建议处置它。没有造成任何损害,如果在更新时更改实现以使用非托管资源,那么它已经被覆盖,并且不会出现丑陋的内存泄漏 (4认同)