Clase SPContentTypeUsage

Se usa para realizar un seguimiento de dónde se usa un tipo de contenido como base para otro tipo de contenido.

Jerarquía de la herencia

System.Object
  Microsoft.SharePoint.SPContentTypeUsage

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

Sintaxis

'Declaración
Public NotInheritable Class SPContentTypeUsage
'Uso
Dim instance As SPContentTypeUsage
public sealed class SPContentTypeUsage

Comentarios

Un objeto SPContentTypeUsage contiene información sobre una sola instancia donde un tipo de contenido se usa como base para otro tipo de contenido. Por ejemplo, cuando un tipo de contenido de sitio se aplica a una lista, un elemento secundario del tipo de contenido de sitio es creado y agregado a la colección de tipo de contenido de la lista. El nuevo tipo de contenido de lista es una instancia donde el tipo de contenido de sitio primario se "usa". Un objeto SPContentTypeUsage puede proporcionar información acerca de este uso, como el localizador uniforme de recursos (URL) de la carpeta raíz de una lista que tiene un tipo de contenido derivado.

Nota

Un tipo de contenido es "usa" si cualquier tipo de contenido que se derivan de éste está presente en una colección de SPContentTypeCollection en el nivel de sitio o lista en cualquier lugar dentro del ámbito del tipo de contenido primario.

Para obtener una lista de todos los usos de un tipo de contenido a lo largo de una colección de sitios, llame al método estático GetUsages(SPContentType) , que devuelve una lista genérica de objetos SPContentTypeUsage .

Ejemplos

El ejemplo siguiente muestra una aplicación de consola que comprueba si un tipo de contenido obsoleto está en uso en el sitio actual o en los sitios secundarios. Si el tipo de contenido no está en uso, la aplicación lo elimina.

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

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 SPContentTypeUsage

Espacio de nombres Microsoft.SharePoint

SPFieldTemplateUsage

Otros recursos

Site and List Content Types

Creating Content Types Based on Other Content Types

Content Type Scope