Freigeben über


SPSiteCollection-Klasse

Stellt eine Auflistung von Objekten SPSite oder Websitesammlungen, die eine bestimmte Webanwendung, einschließlich einer Website auf höchster Ebene und deren Unterwebsites zugeordnet sind. Jede SPSite -Objekt oder die Websitesammlung, wird in einer SPSiteCollection -Objekten, die aus der Auflistung aller Websitesammlungen in der Webanwendung besteht dargestellt.

Vererbungshierarchie

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.SPBaseCollection
      Microsoft.SharePoint.Administration.SPSiteCollection

Namespace:  Microsoft.SharePoint.Administration
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPSiteCollection _
    Inherits SPBaseCollection _
    Implements IEnumerable(Of SPSite), ICollection,  _
    IEnumerable
'Usage
Dim instance As SPSiteCollection
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPSiteCollection : SPBaseCollection, 
    IEnumerable<SPSite>, ICollection, IEnumerable

Hinweise

Verwenden Sie die Sites -Eigenschaft der SPWebApplication -Klasse, um eine Auflistung von SPSite -Objekten zurückzugeben, die alle Websitesammlungen für eine Webanwendung darstellen. Verwenden Sie die Add -Methode, um eine Websitesammlung zu erstellen.

Verwenden Sie Indexerstellung, um einen einzelnen Standort-Objekt aus der Auflistung zurückzugeben. Verwenden Sie beispielsweise, wenn die Auflistung einer Variablen mit dem Namen mySiteszugewiesen ist, mySites[index] in c# oder mySites(index) in Visual Basic index entweder die Indexnummer des websiteobjekts in der Auflistung oder den Anzeigenamen der Website entspricht.

Beispiele

Das folgende Beispiel durchläuft alle Websitesammlungen in der aktuellen Webanwendung, um einen Eintrag zur Liste Ankündigungen auf oberster Ebene für jedes Mitglied hinzuzufügen, die zu einer Gruppe hinzugefügt wurde.

Dim webApp As SPWebApplication = SPContext.Current.Site.WebApplication
Dim siteCollections As SPSiteCollection = webApp.Sites

Dim siteCollection As SPSite

For Each siteCollection In  siteCollections
    Dim changes As SPChangeCollection = siteCollection.GetChanges()
    Dim change As SPChange

    For Each change In  changes
        If change.ChangeType = SPChangeType.MemberAdd Then
            Dim webSite As SPWeb = siteCollection.OpenWeb()
            Dim groups As SPGroupCollection = webSite.Groups
            Dim list As SPList = webSite.GetList("Lists/Announcements")
            Dim items As SPListItemCollection = list.Items
            Dim group As SPChangeGroup = CType(change, SPChangeGroup)

            Dim item As SPListItem = items.Add()
            item("Title") = "User added to " + 
                groups.GetByID(group.Id).Name + " on " + 
                change.Time.ToString()
            item.Update()
        End If
    Next change
Next siteCollection
SPWebApplication webApp = SPContext.Current.Site.WebApplication;
SPSiteCollection siteCollections = webApp.Sites;

foreach (SPSite siteCollection in siteCollections)
{
    SPChangeCollection changes = siteCollection.GetChanges();

    foreach (SPChange change in changes)
    {
        if (change.ChangeType == SPChangeType.MemberAdd)
        {
            SPWeb webSite = siteCollection.OpenWeb();
            SPGroupCollection groups = webSite.Groups;
            SPList list = webSite.GetList("Lists/Announcements");
            SPListItemCollection items = list.Items;

            SPChangeGroup group = (SPChangeGroup)change;

            SPListItem item = items.Add();
                    item["Title"] = "User added to " + 
                    groups.GetByID(group.Id).Name + " on " +
                     change.Time.ToString();
            item.Update();
        }
    }
}

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPSiteCollection-Member

Microsoft.SharePoint.Administration-Namespace