Класс SPContentTypeUsage

Используется для отслеживания, где тип контента используется в качестве основы для другого типа содержимого.

Иерархия наследования

System.Object
  Microsoft.SharePoint.SPContentTypeUsage

Пространство имен:  Microsoft.SharePoint
Сборка:  Microsoft.SharePoint (в Microsoft.SharePoint.dll)

Синтаксис

'Декларация
Public NotInheritable Class SPContentTypeUsage
'Применение
Dim instance As SPContentTypeUsage
public sealed class SPContentTypeUsage

Замечания

Объект SPContentTypeUsage содержит сведения о единственный экземпляр, где тип контента используется в качестве основы для другого типа содержимого. Например при применении типа содержимого узла к списку дочернего типа содержимого узла создается и добавляется в коллекцию типов контента списка. Новый тип содержимого списка является экземпляром, где родительского типа содержимого узла «используется.» Объект SPContentTypeUsage может предоставить информацию об этой используется как универсальный ресурсов локатора (URL) для корневой папки список, содержащий производный тип содержимого.

Примечание

Тип содержимого «используется» при наличии в коллекции SPContentTypeCollection на уровне сайта или списка в любом месте в пределах области родительского типа содержимого любой тип содержимого, производных от него.

Чтобы получить список всех экземпляров типа контента в семействе узлов, вызовите метод static GetUsages(SPContentType) , который возвращает список объектов SPContentTypeUsage .

Примеры

В следующем примере показано консольное приложение, которое проверяет, является ли тип устаревшего содержимого используется в текущего веб-узла или его дочерним сайтам. Если тип контента не используется, приложение удаляет его.

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

Потокобезопасность

Любые общедоступные элементы static (Shared в Visual Basic) этого типа являются потокобезопасными. Не гарантируется, что любые элементы экземпляров потокобезопасны.

См. также

Справочные материалы

Элементы SPContentTypeUsage

Пространство имен Microsoft.SharePoint

SPFieldTemplateUsage

Другие ресурсы

Site and List Content Types

Creating Content Types Based on Other Content Types

Content Type Scope