Gewusst wie: Anpassen der Inhaltstypveröffentlichung

Letzte Änderung: Mittwoch, 21. April 2010

Gilt für: SharePoint Server 2010

Die Inhaltstypveröffentlichung sorgt für Einheitlichkeit in Listen, sodass dieselben Inhaltstypen und damit dieselben Spalten verwendet werden. In Microsoft Office SharePoint Server 2007 wird ein Inhaltstyp auf der Websitesammlungsebene festgelegt. Mithilfe der Inhaltstypveröffentlichung in Microsoft SharePoint Server 2010 kann ein Inhaltstyp innerhalb oder außerhalb der Farm mit der Dienstanwendung für verwaltete Metadaten gemeinsam genutzt werden.

Mithilfe des Objektmodells können Sie die Inhaltstypveröffentlichung anpassen, um einen neuen Inhaltstyp zu erstellen, zu veröffentlichen und dessen Veröffentlichung aufzuheben. Im folgenden Codebeispiel wird die ContentTypePublisher-Klasse vorgestellt. Wenn eine Dienstanwendung für verwaltete Metadaten und deren Proxy bereitgestellt wurden und eine Website als Hub in der Dienstanwendung festgelegt wurde, können Sie mit dieser Klasse die Inhaltstypen in der Hubwebsite veröffentlichen oder deren Veröffentlichung aufheben. Außerdem können Sie mit dieser Klasse überprüfen, ob ein Inhaltstyp in dieser Hubwebsite veröffentlicht ist oder ob das Metadatenhubfeature im Hub aktiviert ist.

In vielen Szenarien dient ein Hub als Herausgeber, und Webanwendungen oder Websitesammlungen abonnieren den vom Hub veröffentlichten Inhalt. Wenn ein Inhaltstyp veröffentlicht ist, rufen Abonnenten Inhaltstypen über einen Zeitgeberauftrag ab. Benutzer navigieren zur Seite Zentraladministration, wo sie eine Webanwendung als Hub auswählen können. Einzelne Webanwendungen können den ausgewählten Hub auch als Anbieter für freigegebene Anwendungsdaten, einschließlich Inhaltstypen, abonnieren.

Beispiel

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");
            }

        }
    }
}

Siehe auch

Konzepte

Metadaten und Taxonomieprogrammierungsmodell

Verwalten von Metadaten

Ausführen von Abfragen nach Werten in verwalteten Metadatenfeldern