Compartir a través de


Procedimiento para personalizar la distribución de tipo de contenido

Última modificación: miércoles, 21 de abril de 2010

Hace referencia a: SharePoint Server 2010

La distribución de tipo de contenido ayuda a garantizar la uniformidad entre las distintas listas para que usen los mismos tipos de contenido y, por lo tanto, las mismas columnas. En Microsoft Office SharePoint Server 2007, un tipo de contenido se establece en el nivel de la colección de sitios. Al usar la distribución de tipo de contenido en Microsoft SharePoint Server 2010, se puede compartir un tipo de contenido dentro o fuera del conjunto o granja de servidores con la aplicación de servicio de metadatos administrados.

Puede usar el modelo de objetos para personalizar la distribución de tipo de contenido para crear un nuevo tipo de contenido, publicarlo y anular su publicación. En el ejemplo de código siguiente se presenta la clase ContentTypePublisher. Después de aprovisionar una aplicación de servicio de metadatos administrados y su proxy, y de designar un sitio como el concentrador en la aplicación de servicio, puede usar esta clase para publicar o anular la publicación de los tipos de contenido en el sitio del concentrador. Además, puede usar esta clase para comprobar si se publica un tipo de contenido en este sitio del concentrador y para comprobar si la función de concentrador de metadatos está habilitada en el concentrador.

En muchas situaciones, un concentrador actúa como un publicador y las colecciones de sitios o aplicaciones web se suscriben al contenido que publica el concentrador. Cuando se publica un tipo de contenido, los suscriptores extraen tipos de contenido a través de un trabajo del temporizador. Los usuarios navegan hasta la página de Administración central, donde pueden seleccionar una aplicación web como un concentrador. Las aplicaciones web también pueden suscribirse al concentrador seleccionado como su proveedor para datos de aplicación compartida, incluidos los tipos de contenido.

Ejemplo

using System;
using System.IO;
using System.Globalization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Taxonomy;
using Microsoft.SharePoint.Taxonomy.ContentTypeSync;

namespace Microsoft.SDK.SharePointServer.Samples
{
    public static class ContentTypeSyndicationSamples
    {
        /// Demostrates how to use the ContentTypePublisher class by creating a 
        /// content type and then publishing it and unpublishing it.
        /// Before this method is called, a Managed Metadata service application
        /// should be created and a hub should be designated on the service application.
        /// <param name="hubSite">
        /// The site that is designated as the hub.
        /// </param>
        public static void UseContentTypePublisher(SPSite hubSite)
        {
            // Get the root Web of the site.
            SPWeb rootWeb = hubSite.RootWeb;

            // Create a new content type based on the Document content type.
            SPContentType docCt = rootWeb.ContentTypes["Document"];
            Random random = new Random();
            string newCTName = "Test content type " + random.Next().ToString();
            SPContentType newCt = new SPContentType(docCt,
                rootWeb.ContentTypes,
                newCTName);

            rootWeb.ContentTypes.Add(newCt);

            Console.WriteLine(newCTName + " has been created.");

            // Check to see whether the site is a valid hub site.
            if (ContentTypePublisher.IsContentTypeSharingEnabled(hubSite))
            {
                ContentTypePublisher publisher = new ContentTypePublisher(hubSite);

                Console.WriteLine("Publishing the content type. ");
                publisher.Publish(newCt);

                // Check to see whether this content type has been published.
                if (publisher.IsPublished(newCt))
                {
                    Console.WriteLine(newCTName + " is a published content type.");
                }

                Console.WriteLine("Unpublishing the content type. ");
                publisher.Unpublish(newCt);

                // Check whether this content type is still published
                if (!publisher.IsPublished(newCt))
                {
                    Console.WriteLine(newCTName + " is not a published content type.");
                }
            }
            else
            {
                // The provided site is not a valid hub site.
                Console.WriteLine("This site is not a valid hub site");
            }

        }
    }
}

Vea también

Conceptos

Modelo de programación de metadatos y taxonomía

Administración de metadatos

Consultas en valores de campos de metadatos administrados