Export (0) Print
Expand All

SPContentTypeCollection.Add Method

Adds a content type to the collection.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)
Available in Sandboxed Solutions: Yes
Available in SharePoint Online

[ClientCallableExceptionConstraintAttribute(FixedId = "a", ErrorType = typeof(SPException), 
	Condition = "A ContentType with the same name exists.", ErrorCode = )]
[ClientCallableExceptionConstraintAttribute(FixedId = "b", ErrorType = typeof(ServerException), 
	Condition = "Collection is read only.", ErrorCode = )]
[ClientCallableMethodAttribute(ReturnObjectIdentity = true, Name = "AddExistingContentType", 
	AddReturnValueToCollection = true)]
public SPContentType Add(
	SPContentType contentType
)

Parameters

contentType
Type: Microsoft.SharePoint.SPContentType

The content type to add to the collection.

Return Value

Type: Microsoft.SharePoint.SPContentType
A fully initialized instance of the content type.

ExceptionCondition
SPException

contentType is null.

-or-

The content type is already in the collection.

-or-

The collection is ready-only.

A content type is not completely initialized until it is added to a content type collection. Among other things, it is assigned a content type ID that is relevant to the collection. For example, when you add a site content type to the content type collection associated with a list, the resulting list content type has a content type ID that is different from the original site content type. For more information, see Site and List Content Types.

The following example shows a console application that gets a content type from the collection that is returned by the AvailableContentTypes property. It then adds that content type to the collection that is returned by the ContentTypes property of an SPList object.

using System;
using Microsoft.SharePoint;

namespace Test
{
   class ConsoleApp
   {
      static void Main(string[] args)
      {
         using (SPSite site = new SPSite("http://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();
      }
   }
}
Show:
© 2014 Microsoft