Compartir a través de


Clase SPSiteCollection

Representa una colección de objetos de SPSite o colecciones de sitios que están asociadas con una aplicación Web concreta, incluidos un sitio Web de nivel superior y todos sus subsitios. Cada objeto SPSite o colección de sitios, se representa dentro de un objeto SPSiteCollection que consta de la colección de todas las colecciones de sitios en la aplicación Web.

Jerarquía de la herencia

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

Espacio de nombres:  Microsoft.SharePoint.Administration
Ensamblado:  Microsoft.SharePoint (en Microsoft.SharePoint.dll)

Sintaxis

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

Comentarios

Utilice la propiedad Sites de la clase SPWebApplication para devolver una colección de objetos SPSite que representan todas las colecciones de sitios para una aplicación Web. Para crear una colección de sitios, use el método Add .

Utilice un indizador para devolver un objeto de sitio único de la colección. Por ejemplo, si la colección se asigna a una variable denominada mySites, use mySites[index] en C# o mySites(index) en Visual Basic, donde index es el número de índice del objeto de sitio en la colección o el nombre para mostrar del sitio.

Ejemplos

El ejemplo siguiente se recorre en iteración todas las colecciones de sitios dentro de la aplicación Web actual para agregar un elemento a la lista de anuncios de nivel superior para cada miembro que se ha agregado a un grupo.

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();
        }
    }
}

Seguridad para subprocesos

Los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para subprocesos. No se garantiza que los miembros de instancias sean seguros para los subprocesos.

Vea también

Referencia

Miembros SPSiteCollection

Espacio de nombres Microsoft.SharePoint.Administration