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

SPContentTypeUsage - Membres

Microsoft.SharePoint - Espace de noms

SPFieldTemplateUsage

Autres ressources

Site and List Content Types

Creating Content Types Based on Other Content Types

Content Type Scope