SPContentTypeUsage - Classe
Utilisé pour effectuer le suivi dans lequel un type de contenu est utilisé comme base pour un autre type de contenu.
Hiérarchie d’héritage
System.Object
Microsoft.SharePoint.SPContentTypeUsage
Espace de noms : Microsoft.SharePoint
Assembly : Microsoft.SharePoint (dans Microsoft.SharePoint.dll)
Syntaxe
'Déclaration
Public NotInheritable Class SPContentTypeUsage
'Utilisation
Dim instance As SPContentTypeUsage
public sealed class SPContentTypeUsage
Remarques
Un objet SPContentTypeUsage contient des informations sur une instance unique dans lequel un type de contenu est utilisé comme base pour un autre type de contenu. Par exemple, lorsqu'un type de contenu de site est appliqué à une liste, un enfant du type de contenu de site est créé et ajouté à la collection de type de contenu de la liste. Le nouveau type de contenu de liste est une instance où le type de contenu de site parent est « utilisé. » Un objet SPContentTypeUsage peut fournir des informations sur cette utilisation, telles que l'URL Uniform Resource Locator () pour le dossier racine d'une liste qui a un type de contenu dérivé.
Notes
Un type de contenu est « utilisé » si aucun type de contenu dérivé est présent dans une collection de SPContentTypeCollection au niveau du site ou de liste n'importe où dans la portée du type de contenu parent.
Pour obtenir une liste de toutes les utilisations d'un type de contenu dans une collection de sites, appelez la méthode statique GetUsages(SPContentType) , qui retourne une liste générique d'objets SPContentTypeUsage .
Exemples
L'exemple suivant montre une application console qui vérifie si un type de contenu obsolète est utilisé dans le site actuel ou tous les sites enfants. Si le type de contenu n'est pas en cours d'utilisation, l'application supprime.
Imports System
Imports System.Collections.Generic
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.OpenWeb()
' Get the obsolete content type.
Dim obsolete As SPContentType = webSite.ContentTypes("Test")
If obsolete IsNot Nothing Then ' We have a content type
Dim usages As IList(Of SPContentTypeUsage) = _
SPContentTypeUsage.GetUsages(obsolete)
If usages.Count > 0 Then ' It is in use
Console.WriteLine("The content type is in use in the following locations:")
For Each usage As SPContentTypeUsage In usages
Console.WriteLine(usage.Url)
Next usage
Else ' It is not in use.
' Delete it.
Console.WriteLine("Deleting content type {0}...", obsolete.Name)
webSite.ContentTypes.Delete(obsolete.Id)
End If
Else ' No content type available.
Console.WriteLine("The content type does not exist in this site collection.")
End If
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
End Module
using System;
using System.Collections.Generic;
using Microsoft.SharePoint;
namespace Test
{
class ConsoleApp
{
static void Main(string[] args)
{
using (SPSite siteCollection = new SPSite("https://localhost"))
{
using (SPWeb webSite = siteCollection.OpenWeb())
{
// Get the obsolete content type.
SPContentType obsolete = webSite.ContentTypes["Test"];
if (obsolete != null) // We have a content type
{
IList<SPContentTypeUsage> usages = SPContentTypeUsage.GetUsages(obsolete);
if (usages.Count > 0) // It is in use
{
Console.WriteLine("The content type is in use in the following locations:");
foreach (SPContentTypeUsage usage in usages)
Console.WriteLine(usage.Url);
}
else // It is not in use.
{
// Delete it.
Console.WriteLine("Deleting content type {0}...", obsolete.Name);
webSite.ContentTypes.Delete(obsolete.Id);
}
}
else // No content type is found.
{
Console.WriteLine("The content type does not exist in this site collection.");
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
}
}
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.
Voir aussi
Référence
Microsoft.SharePoint - Espace de noms