del método SPContentTypeCollection.BestMatch
Busca en la colección y devuelve el identificador de tipo de contenido (ID) que es el más cercano que coincide con el identificador de tipo de contenido especificado.
Espacio de nombres: Microsoft.SharePoint
Ensamblado: Microsoft.SharePoint (en Microsoft.SharePoint.dll)
Sintaxis
'Declaración
Public Function BestMatch ( _
contentTypeId As SPContentTypeId _
) As SPContentTypeId
'Uso
Dim instance As SPContentTypeCollection
Dim contentTypeId As SPContentTypeId
Dim returnValue As SPContentTypeId
returnValue = instance.BestMatch(contentTypeId)
public SPContentTypeId BestMatch(
SPContentTypeId contentTypeId
)
Parámetros
contentTypeId
Tipo: Microsoft.SharePoint.SPContentTypeIdPara que coincida con un identificador de tipo de contenido.
Valor devuelto
Tipo: Microsoft.SharePoint.SPContentTypeId
El valor de la propiedad Id para el tipo de contenido con la coincidencia más cercana al valor del contenido especificado el identificador de tipo Si la búsqueda encuentra a dos coincidencias, se devuelve el identificador de menor tamaño. Por ejemplo, si 0 x 0101 es el argumento y la colección contiene 0x010109 y 0x01010901, el método devuelve 0x010109.
Comentarios
Use este método para determinar si una colección contiene un elemento secundario de un tipo de contenido conocido. Tenga en cuenta, sin embargo, que, cuando un tipo de contenido de sitio se copian a una lista, el tipo de contenido en la lista obtiene un nuevo identificador de tipo de contenido con el formato siguiente.
site content type ID + "00" + 32-character hexadecimal GUID
Para obtener más información, vea Content Type IDs.
Sugerencia
Si desea saber en todos los lugares que se usa un tipo de contenido a lo largo de una colección de sitios, llame al método de GetUsages .
Ejemplos
El ejemplo siguiente muestra una aplicación de consola que itera a través de las listas en un sitio Web y determina si contiene o no la colección de tipo de contenido de cada lista deriva de un tipo de contenido especificado.
Imports System
Imports Microsoft.SharePoint
Module ConsoleApp
Sub Main()
Using siteCollection As SPSite = New SPSite("https://localhost")
Using webSite As SPWeb = siteCollection.OpenWeb()
' Get a content type id to search for.
Dim contentTypeId As SPContentTypeId = SPBuiltInContentTypeId.Task
For Each list As SPList In webSite.Lists
If ListContains(list, contentTypeId) Then
Console.WriteLine("The {0} list uses the content type.", list.Title)
End If
Next list
End Using
End Using
Console.Write(vbCrLf + "Press ENTER to continue...")
Console.ReadLine()
End Sub
Function ListContains(ByVal list As SPList, ByVal id As SPContentTypeId) As Boolean
Dim matchId As SPContentTypeId = list.ContentTypes.BestMatch(id)
Return matchId.IsChildOf(id)
End Function
End Module
using System;
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 a content type id to search for.
SPContentTypeId contentTypeId = SPBuiltInContentTypeId.Task;
foreach (SPList list in webSite.Lists)
{
if (ListContains(list, contentTypeId))
Console.WriteLine("The {0} list uses the content type.",
list.Title);
}
}
}
Console.Write("\nPress ENTER to continue...");
Console.ReadLine();
}
static bool ListContains(SPList list, SPContentTypeId id)
{
SPContentTypeId matchId = list.ContentTypes.BestMatch(id);
return matchId.IsChildOf(id);
}
}
}
La aplicación imprime el siguiente resultado en la consola.
The Tasks list uses the content type.
Press ENTER to continue...
Vea también
Referencia
Miembros SPContentTypeCollection
Espacio de nombres Microsoft.SharePoint