我应该在JsonConver上使用using语句作为回报

时间:2018-01-30 12:29:58

标签: c#

我有一个包含现有代码的新项目。 我看到在一种方法中使用的流没有'使用'语句:

params

问题是:此流将由GC清除,或者我需要编写如下内容:

 private FileInfoRequest ParseFileInfoRequest(Stream body)
        {
            try
            {
                var sr = new StreamReader(body, Encoding.UTF8);
                return JsonConvert.DeserializeObject<FileInfoRequest>(sr.ReadToEnd());
            }
            catch (Exception ex)
            {
                _log.Error("Could not parse FileInfoRequest", ex);
                throw Thrower.GetThrowError(HttpStatusCode.BadRequest,
                    _localization.Api().BadRequestBody,
                    UiMessageKey.ApiBadRequest);
            }
        }

1 个答案:

答案 0 :(得分:0)

是的,当不再需要流时,您应始终dispose。否则,该流可能始终存在引用,GC不会将其从内存中删除。

将代码包装在using块中或使用sr.Dispose();