假设我正在使用 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();
请记住,我的问题不是关于美学,而是关于 IDisposable 对象发生了什么,我无法明确调用 Dispose(),因为我没有参考。
很抱歉我第一次问这个问题时不够清楚。从那以后我改写了它。感谢您迄今为止的所有回复。