gpt4 book ai didi

c# - 我是否必须关闭我的代码从未访问过的 HttpRequest 输入流?

转载 作者:太空狗 更新时间:2023-10-30 01:18:53 24 4
gpt4 key购买 nike

我有一些遗留代码在 ASP.NET 中运行,其工作方式如下:

void HandleRequest(HttpContext context)
{
try {
if( some condition ) {
try {
doSomething( context.Request.InputStream );
} finally {
context.Request.InputStream.Close();
}
}
// moar code follows which doesn't access InputStream
} finally {
context.Request.InputStream.Close();
}
}

请注意,无论 InputStream 是否被访问,它都会被检索并关闭。我想这是在浪费时间,第二个 .Close() 是多余的。

我是否必须关闭我的代码从未访问过的 HttpRequest 输入流?

最佳答案

因为您没有创建 InputStream,所以您不应该负责关闭它。

诸如此类的规则可以让我们保持清醒 - 如果您负责关闭它,那么您将负责哪些其他对象? HttpContext 有很多属性需要检查。如果他们向 HttpContext 添加新属性,现有代码会发生什么情况?

如果他们希望您对关闭它负责,则应该改为 public Stream CreateInputStream(),绝对不是属性。

关于c# - 我是否必须关闭我的代码从未访问过的 HttpRequest 输入流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com