Compartilhar via


SPContentTypeUsage class

Usado para controlar onde um tipo de conteúdo é usado como a base para outro tipo de conteúdo.

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.SPContentTypeUsage

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public NotInheritable Class SPContentTypeUsage
'Uso
Dim instance As SPContentTypeUsage
public sealed class SPContentTypeUsage

Comentários

Um objeto SPContentTypeUsage contém informações sobre uma única instância em que um tipo de conteúdo é usado como a base para outro tipo de conteúdo. Por exemplo, quando um tipo de conteúdo de site for aplicado a uma lista, um filho do tipo de conteúdo de site é criado e adicionado à coleção de tipo de conteúdo da lista. O novo tipo de conteúdo de lista é uma instância onde o tipo de conteúdo do site pai é "usado." Um objeto SPContentTypeUsage pode fornecer informações sobre esse uso, como o localizador de recursos uniforme (URL) para a pasta raiz de uma lista que tem um tipo de conteúdo derivado.

Dica

Um tipo de conteúdo é "usado" se houver qualquer tipo de conteúdo derivado dele em uma coleção de SPContentTypeCollection no nível do site ou lista em qualquer lugar dentro do escopo do tipo de conteúdo pai.

Para obter uma lista de todos os usos de um tipo de conteúdo ao longo de um conjunto de sites, chame o método estático GetUsages(SPContentType) , que retorna uma lista genérica de objetos SPContentTypeUsage .

Examples

O exemplo a seguir mostra um aplicativo de console que verifica se um tipo de conteúdo obsoleto está em uso no site atual ou em todos os sites filho. Se o tipo de conteúdo não estiver em uso, o aplicativo exclui-lo.

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

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPContentTypeUsage members

Microsoft.SharePoint namespace

SPFieldTemplateUsage

Outros recursos

Site and List Content Types

Creating Content Types Based on Other Content Types

Content Type Scope