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.