Compartir a través de


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

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

clase SPContentTypeCollection

Miembros SPContentTypeCollection

Espacio de nombres Microsoft.SharePoint

GetUsages

Otros recursos

Introduction to Content Types

Site and List Content Types

Base Content Type Hierarchy