SPContentTypeUsage-Klasse

Verwendet, um nachzuverfolgen, in denen ein Inhaltstyp als Grundlage für einen anderen Inhaltstyp verwendet wird.

Vererbungshierarchie

System.Object
  Microsoft.SharePoint.SPContentTypeUsage

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

Syntax

'Declaration
Public NotInheritable Class SPContentTypeUsage
'Usage
Dim instance As SPContentTypeUsage
public sealed class SPContentTypeUsage

Hinweise

Ein SPContentTypeUsage -Objekt enthält Informationen über eine einzelne Instanz, in ein Inhaltstyp als Grundlage für einen anderen Inhaltstyp verwendet wird. Wenn ein Websiteinhaltstyp auf eine Liste angewendet wird, ist ein untergeordnetes Element des Websiteinhaltstyps beispielsweise erstellt und inhaltstypauflistung der Liste hinzugefügt. Der neue Inhaltstyp der Liste ist eine Instanz, in der übergeordneten Website-Inhaltstyp "verwendet wird." Ein Objekt SPContentTypeUsage bieten Informationen über diese Anwendung wie der URL (Uniform Resource Locator) für den Stammordner einer Liste, die einen abgeleiteten Inhaltstyp hat.

Hinweis

Ein Inhaltstyp wird "verwendet", wenn alle davon abgeleiteten Inhaltstyp in einer Auflistung SPContentTypeCollection auf der Website oder Liste Ebene an einer beliebigen Stelle innerhalb des Bereichs des übergeordneten Inhaltstyps vorhanden ist.

Wenn Sie eine Liste mit allen Verwendungen eines Inhaltstyps innerhalb einer Websitesammlung erhalten möchten, rufen Sie die statische GetUsages(SPContentType) -Methode, die eine generische Liste von SPContentTypeUsage Objekte zurückgibt.

Beispiele

Das folgende Beispiel zeigt eine Konsolenanwendung, die überprüft, ob ein veralteter Inhaltstyp in der aktuellen Website oder den untergeordneten Websites verwendet wird. Wenn der Inhaltstyp nicht verwendet wird, wird es von die Anwendung gelöscht.

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

Threadsicherheit

Alle öffentlichen static (Shared in Visual Basic) Member dieses Typs sind threadsicher. Die Threadsicherheit von Instanzmembern ist nicht gewährleistet.

Siehe auch

Referenz

SPContentTypeUsage-Member

Microsoft.SharePoint-Namespace

SPFieldTemplateUsage

Weitere Ressourcen

Site and List Content Types

Creating Content Types Based on Other Content Types

Content Type Scope