我的场景是在 SPJobDefinition 的 Execute 方法中,我想遍历 Web 应用程序中的每个 SPSite。所以我有以下代码:
foreach (SPSite site in this.WebApplication.Sites)
{
...
}
问题是,我需要处理每个站点吗?我通常遵循的规则是仅在我自己新建时才将其处理或放入 using 中。Sites 属性是否实际上包含完整构造的站点对象,我将在此代码中仅引用它。如果是这样,那么处置这些站点将是危险的,因为我正在修改另一个可能需要它们的对象。或者相反的是 Sites 属性是否根据请求构造对象。在这种情况下,我有责任处理它们吗?
另外,如果我确实需要这样做,我该如何处理它们。在这种情况下我不能使用 using ,并且在 foreach 中调用 dispose 会破坏枚举吗?