Erzeugen von RSS- und Atom-Feeds
Mit den Websynchronisierungkomponenten von Sync Framework kann ein Replikat seine Daten für interessierte Abonnenten alsRSS- oder Atom- Feed veröffentlichen. Die Websynchronisierungskomponenten stellen den Feed intern als Synchronisierungsanbieter dar und verwenden andere Sync Framework-Komponenten, um Feedelemente zwischen dem Feedanbieter und einem Anbieter, der das Replikat darstellt, zu synchronisieren. Aus diesem Grund muss eine Anwendung nur Methoden zur Umwandlung von IDs und Elementdaten in das vom Feed erwartete XML-Format implementieren. Allgemeine Synchronisierungsaufgaben, wie beispielsweise Feststellen von Änderungen und Konflikten sowie Vornehmen von Änderungen am erzeugten Feed, erledigt Sync Framework.
Um einen Feed zu erzeugen, erstellt eine Anwendung ein FeedProducer-Objekt und stellt die folgenden Elemente bereit:
Einen Synchronisierungsanbieter, der das zu erzeugende Replikat darstellt
ID- und Elementkonverterobjekte
Einen Stream, der einen leeren RSS- oder Atom-Feed enthält
Die Anwendung ruft dann die entsprechende Methode des FeedProducer-Objekts auf, um den Feed zu erzeugen. Sync Framework schließt den Feed in einen Synchronisierungsanbieter ein und startet eine Synchronisierungssitzung, die den lokalen Anbieter als Quellenanbieter und den Feedanbieter als Zielanbieter verwendet, um den Feed zu erzeugen. Während der Verarbeitung ruft Sync Framework die ID- und Elementkonverter zur Umwandlung der IDs und der Elementdaten in ein gültiges XML-Format auf und fügt die XML-Daten dann an der entsprechenden Stelle im Stream ein. Wenn die Verarbeitung abgeschlossen ist, enthält der Feedstream die Elemente aus dem Replikat zusammen mit den FeedSync-Metadaten über diese Elemente. Dieser Stream kann dann mit einem entsprechenden Mechanismus als Feed für Abonnenten veröffentlicht werden.
Weitere Informationen zum Implementieren von ID- und Elementkonverterobjekten finden Sie unter Konvertieren von IDs und Elementen für RSS- und Atom-Feeds.
Weitere Informationen zu FeedSync-Feeds finden Sie auf der FeedSync-Website.
Erzeugen des Feeds mithilfe von verwaltetem Code
Um einen Feed zu erzeugen, müssen Sie zuerst ein FeedProducer-Objekt mithilfe von FeedProducer erstellen und diesem folgende Objekte übergeben:
Ein von einer Anwendung implementiertes FeedIdConverter-Objekt.
Ein von einer Anwendung implementiertes FeedItemConverter-Objekt
Ein KnowledgeSyncProvider-Objekt, das das zu erzeugende Replikat darstellt
Rufen Sie dann ProduceFeed auf, und übergeben Sie ein Stream-Objekt, das einen leeren RSS- oder Atom-Feed enthält. Am Ende der Verarbeitung enthält dieses Stream-Objekt einen FeedSync-Feed, der die Elemente aus dem Replikat enthält. Beachten Sie, dass der Stream mit Lese- und Schreibrechten geöffnet werden muss.
Um einen partiellen Feed zu erzeugen, übergeben Sie ein EndpointState-Objekt an ProduceFeed. Dadurch wird eine Baseline für einen inkrementellen Feed geschaffen, der alle in der Baseline nicht enthaltenen Replikatelemente enthält.
Erzeugen des Feeds mithilfe von nicht verwaltetem Code
Um einen Feed zu erzeugen, müssen Sie zuerst ein IFeedProducerConsumerServices-Objekt erstellen, indem Sie CLSID_FeedSyncServices und IID_IFeedProducerConsumerServices an die CoCreateInstance-Funktion übergeben. Erstellen Sie anschließend ein IFeedProducer-Objekt, indem Sie IFeedProducerConsumerServices::CreateFeedProducer verwenden.
Rufen Sie zur Erzeugung des Feeds IFeedProducer::ProduceFeed auf, und übergeben Sie folgende Objekte:
Ein von einer Anwendung implementiertes IFeedIdConverter-Objekt
Ein von einer Anwendung implementiertes IFeedItemConverter-Objekt
Ein ISyncProvider-Objekt, das das zu erzeugende Replikat darstellt
Ein IStream-Objekt, das einen leeren RSS- oder Atom-Feed enthält. Beachten Sie, dass der Stream mit Lese- und Schreibrechten geöffnet werden muss.
Am Ende der Verarbeitung enthält das IStream-Objekt einen FeedSync-Feed, der die Elemente aus dem Replikat enthält.
Um einen partiellen Feed zu erzeugen, übergeben Sie ein IEndpointState-Objekt an IFeedProducer::ProduceFeed. Dadurch wird eine Baseline für einen inkrementellen Feed geschaffen, der alle in der Baseline nicht enthaltenen Replikatelemente enthält.
Siehe auch
Verweis
IFeedProducerConsumerServices-Schnittstelle
IFeedProducer-Schnittstelle
IEndpointState-Schnittstelle
Microsoft.Synchronization.FeedSync
FeedProducer
EndpointState
Konzepte
Synchronisieren von Webfeeds
Websynchronisierungskomponenten von Sync Framework