gpt4 book ai didi

c# - .Net/C# 对象应该自己调用 Dispose() 吗?

转载 作者:IT王子 更新时间:2023-10-29 04:05:03 25 4
gpt4 key购买 nike

下面是同事写的一些示例代码。这对我来说显然是错误的,但我想检查一下。一个对象是否应该从它自己的方法之一中调用它自己的 Dispose() 方法?在我看来,只有对象的所有者/创建者才应该在处理对象而不是对象本身时调用 Dispose()

这是一个 .asmx 网络方法,它在完成后会自行调用 Dispose()。 (事实上​​它是一个 web 方法可能是一般问题的附带问题。)在我们的代码库中,我们有时会在其他 web 服务的方法中实例化 web 服务类,然后调用它们的方法。如果我的代码这样做是为了调用此方法,则当该方法返回时该对象就完蛋了,我不能再真正使用该对象了。

[WebMethod]
public string MyWebMethod()
{
try
{
return doSomething();
}
catch(Exception exception)
{
return string.Empty;
}
finally
{
Dispose(true);
}
}

更新:找到了一些相关的链接:

Do I need to dispose a web service reference in ASP.NET?

Dispose a Web Service Proxy class?

最佳答案

当然这不是一个好的做法。调用者应决定何时使用完 IDisposable 对象,而不是对象本身。

关于c# - .Net/C# 对象应该自己调用 Dispose() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045251/

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