假设我正在使用Sharepoint(这也适用于其他对象模型),并且在语句中间调用了一个方法,例如“OpenWeb()”,该方法创建了一个IDisposable SPWeb对象。现在,由于我没有对SPWeb对象的引用,因此无法调用Dispose()方法。 那么我需要担心内存泄漏吗?
SPUser spUser = SPControl.GetContextSite(HttpContext.Current).OpenWeb().SiteUsers[@"foo\bar"];
我知道我可以将语句分成多行,并获取SPWeb引用以调用Dispose:
SPWeb spWeb = SPControl.GetContextSite(HttpContext.Current).OpenWeb();
SPUser spUser = spWeb.SiteUsers[@"foo\bar"];
spWeb.Dispose();
请记住,我的问题不是关于美学方面的,而是关于无法显式调用Dispose()的IDisposable对象会发生什么,因为我没有引用它。很抱歉我第一次提问时没有表达清楚,现在我已经重新措辞了。感谢迄今为止所有的回答。