Поделиться через


Метод SPContentTypeCollection.Add

Добавляет в коллекцию типа содержимого.

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

Синтаксис

'Декларация
Public Function Add ( _
    contentType As SPContentType _
) As SPContentType
'Применение
Dim instance As SPContentTypeCollection
Dim contentType As SPContentType
Dim returnValue As SPContentType

returnValue = instance.Add(contentType)
public SPContentType Add(
    SPContentType contentType
)

Параметры

Возвращаемое значение

Тип: Microsoft.SharePoint.SPContentType
Полностью инициализированный экземпляр типа содержимого.

Исключения

Исключение Условие
SPException

contentType имеет значение null.

-или-

Тип содержимого уже присутствует в коллекции.

-или-

Коллекция только для чтения.

Замечания

Тип контента не инициализирован полностью только после добавления в коллекцию типов контента. Помимо прочего ему присваивается идентификатор типа контента, который относится к коллекции. Например при добавлении типа контента сайта в коллекцию типов контента, связанных со списком результирующий тип контента списка имеет идентификатор типа содержимого, который отличается от исходного типа контента сайта. Дополнительные сведения содержатся в разделе Site and List Content Types.

Примеры

В следующем примере показано консольное приложение, которое возвращает тип контента из коллекции, которая возвращается свойством AvailableContentTypes . Затем он добавляет типа содержимого коллекции, который возвращается свойством ContentTypes объекта SPList .

Imports System
Imports Microsoft.SharePoint

Module ConsoleApp
   Sub Main()
      Using site As SPSite = New SPSite("https://localhost")
         Using web As SPWeb = site.OpenWeb()

            ' Get a content type.
            Dim ct As SPContentType = web.AvailableContentTypes(SPBuiltInContentTypeId.Document)

            If ct IsNot Nothing Then ' We have a content type

               Try ' Get a list.
                  Dim list As SPList = web.Lists("Test List") ' Throws exception if does not exist

                  ' Make sure you can add content types.
                  list.ContentTypesEnabled = True

                  ' Add the content type to the list.
                  If Not list.IsContentTypeAllowed(ct) Then
                     Console.WriteLine("The {0} content type is not allowed on the {1} list", _
                                       ct.Name, list.Title)
                  ElseIf list.ContentTypes(ct.Name) IsNot Nothing Then
                     Console.WriteLine("The content type name {0} is already in use on the {1} list", _
                                       ct.Name, list.Title)
                  Else
                     list.ContentTypes.Add(ct)
                  End If

               Catch ex As ArgumentException ' No list
                  Console.WriteLine("The list does not exist.")
               End Try

            Else ' No content type found.
               Console.WriteLine("The content type is not available in this site.")
            End If

         End Using
      End Using
      Console.Write(vbCrLf + "Press ENTER to continue...")
      Console.ReadLine()
   End Sub
End Module
using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("https://localhost"))
         {
            using (SPWeb web = site.OpenWeb())
            {
               // Get a content type.
               SPContentType ct = web.AvailableContentTypes[SPBuiltInContentTypeId.Document];

               if (ct != null) // We have a content type
               {
                  try // Get a list.
                  {
                     SPList list = web.Lists["Test List"]; // Throws exception if does not exist

                     // Make sure you can add content types.
                     list.ContentTypesEnabled = true;

                     // Add the content type to the list.
                     if (!list.IsContentTypeAllowed(ct))
                        Console.WriteLine("The {0} content type is not allowed on the {1} list",
                                           ct.Name, list.Title);
                     else if (list.ContentTypes[ct.Name] != null)
                        Console.WriteLine("The content type name {0} is already in use on the {1} list",
                                           ct.Name, list.Title);
                     else
                        list.ContentTypes.Add(ct);
                  }
                  catch (ArgumentException ex) // No list is found.
                  {
                     Console.WriteLine("The list does not exist.");
                  }
               }
               else // No content type is found.
               {
                  Console.WriteLine("The content type is not available in this site.");
               }
            }
         }
         Console.Write("\nPress ENTER to continue...");
         Console.ReadLine();
      }
   }
}

См. также

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

SPContentTypeCollection класс

Элементы SPContentTypeCollection

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

SPContentType(SPContentTypeId, SPContentTypeCollection, String)

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

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy