SPSite class
表示 Web 應用程式,包括最上層的網站和所有子網站中的網站集合。在 Web 應用程式中的所有網站集合的集合所組成的SPSiteCollection物件中的表示每個SPSite物件或網站集合。
Inheritance hierarchy
System.Object
Microsoft.SharePoint.SPSite
Namespace: Microsoft.SharePoint
Assembly: Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Syntax
'宣告
Public Class SPSite _
Implements IDisposable
'用途
Dim instance As SPSite
public class SPSite : IDisposable
備註
若要在 ASP.NET 頁面中,在特定網站集合或特定網站集合中的主控台應用程式的SPSite物件具現化,使用SPSite建構函式如下所示:
Dim oSiteCollection As New SPSite("Absolute_URL")
SPSite oSiteCollection = new SPSite("Absolute_URL");
在 ASP.NET 應用程式,您可以使用SPContext類別的Site屬性來傳回SPSite物件,表示目前的網站集合,如下所示:
Dim oSiteCollection As SPSite = SPContext.Current.Site
SPSite oSiteCollection = SPContext.Current.Site;
您可以使用SPWebApplication類別的Sites屬性,傳回SPSiteCollection物件,表示在 SharePoint Web 應用程式中的網站集合的集合。若要從集合傳回單一網站集合使用索引子。例如,如果網站集合的集合指派給名為oSiteCollections的變數時,使用在 C# 的oSiteCollections[index]或 Visual Basic,其中index是顯示名稱或索引編號集合中的網站集合中的oSiteCollections(index) 。
某些物件實作IDisposable介面,並且您必須避免之後不再需要保留這些物件在記憶體中。如果您建立自己的SPSite物件,您可以使用Dispose方法來關閉物件。您可以也改為實作using陳述式,使.NET Framework 通用語言執行階段 (CLR) 會自動釋放的記憶體,用來儲存網站集合,如下所示:
Using oSiteCollection = New SPSite("Absolute_URL")
...
End Using
using (SPSite oSiteCollection = new SPSite("Absolute_URL")
{
...
}
不過,如果您有共用的資源,例如當物件由 Web 組件中的GetContextSite方法的參考請勿使用任何一種方法來關閉物件。使用共用資源上的任何一種方法將導致發生存取違規錯誤。在案例中具有共用資源的參考,而是讓Microsoft SharePoint Foundation或入口網站的應用程式管理該物件。
如需有關良好的程式碼撰寫方式的詳細資訊,請參閱Disposing Objects。
重要
如果您安裝Infrastructure Update for Windows SharePoint Services 3.0 (KB951695)時,如果它們呼叫 SharePoint 物件模型,模擬暫停執行時,可能會失敗的自訂解決方案。如果您使用 Windows 驗證,您的程式碼呼叫 SharePoint 物件模型,從網際網路資訊服務 (IIS) 背景工作處理序,要求必須模擬呼叫使用者的識別。SharePoint Foundation設定為自動,模擬呼叫使用者的 ASP.NET,但如果您暫止模擬-例如,藉由呼叫RevertToSelf函式的 Windows API,或藉由呼叫System.Security.Principal.WindowsIdentity.Impersonate方法,並為使用者權杖參數值傳遞IntPtr.Zero ,您的程式碼可能意外地失敗。甚至如果以供自我明確地還原您的程式碼,它可能由呼叫 ASP.NET 就會還原成本身之後,例如時會實作虛擬路徑提供者。如果您的程式碼並不會模擬呼叫的使用者,它可能無法正確運作。
Thread safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.