我有一个包含现有代码的新项目。 我看到在一种方法中使用的流没有'使用'语句:
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);
}
}
答案 0 :(得分:0)
是的,当不再需要流时,您应始终dispose
。否则,该流可能始终存在引用,GC不会将其从内存中删除。
将代码包装在using
块中或使用sr.Dispose();
。