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
Syntax
'Declaration
<ClientCallableExceptionConstraintAttribute(FixedId := "a", ErrorType := GetType(SPException), _
Condition := "A ContentType with the same name exists.", ErrorCode := )> _
<ClientCallableExceptionConstraintAttribute(FixedId := "b", ErrorType := GetType(ServerException), _
Condition := "Collection is read only.", ErrorCode := )> _
<ClientCallableMethodAttribute(ReturnObjectIdentity := True, Name := "AddExistingContentType", _
AddReturnValueToCollection := True)> _
Public Function Add ( _
contentType As SPContentType _
) As SPContentType
'Usage
Dim instance As SPContentTypeCollection
Dim contentType As SPContentType
Dim returnValue As SPContentType
returnValue = instance.Add(contentType)
[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.SPContentTypeThe content type to add to the collection.
Return Value
Type: Microsoft.SharePoint.SPContentType
A fully initialized instance of the content type.
Exceptions
Exception | Condition |
---|---|
SPException | contentType is null. -or- The content type is already in the collection. -or- The collection is ready-only. |
Remarks
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.
Examples
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.
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();
}
}
}
See Also
Reference
SPContentTypeCollection Members
Microsoft.SharePoint Namespace
SPContentType(SPContentTypeId, SPContentTypeCollection, String)