SPSiteCollection - Classe
Représente une collection d'objets de SPSite ou des collections de sites qui sont associées à une application Web particulière, y compris un site Web de niveau supérieur et tous ses sous-sites. Chaque objet de SPSite , ou collection de sites est représentée dans un objet SPSiteCollection qui se compose de la collection de toutes les collections de sites dans l'application Web.
Hiérarchie d’héritage
System.Object
Microsoft.SharePoint.Administration.SPAutoSerializingObject
Microsoft.SharePoint.SPBaseCollection
Microsoft.SharePoint.Administration.SPSiteCollection
Espace de noms : Microsoft.SharePoint.Administration
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
Public Class SPSiteCollection _
Inherits SPBaseCollection _
Implements IEnumerable(Of SPSite), ICollection, _
IEnumerable
'Utilisation
Dim instance As SPSiteCollection
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
public class SPSiteCollection : SPBaseCollection,
IEnumerable<SPSite>, ICollection, IEnumerable
Remarques
Utilisez la propriété Sites de la classe SPWebApplication pour retourner une collection d'objets SPSite qui représentent toutes les collections de sites pour une application Web. Pour créer une collection de sites, utilisez la méthode Add .
Utilisez un indexeur pour renvoyer un objet site unique de la collection. Par exemple, si la collection est assignée à une variable nommée mySites, utilisez mySites[index] en c# ou mySites(index) dans Visual Basic, où index représente le numéro d'index de l'objet de site dans la collection ou le nom complet du site.
Exemples
L'exemple suivant effectue une itération dans toutes les collections de sites au sein de l'application Web en cours pour ajouter un élément à la liste Annonces de niveau supérieur pour chaque membre qui a été ajouté à un groupe.
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();
}
}
}
Cohérence de thread
Tous les membres statique (Partagé dans Visual Basic)s publics de ce type sont thread-safe. Cela n’est pas garanti pour les membres d’instance.