Stand-Alone Diagnostics Feed, exemple
Cet exemple illustre la création d'un flux RSS/Atom pour la syndication avec Windows Communication Foundation (WCF). Il s'agit d'un programme « Hello World » de base qui affiche l'essentiel du modèle objet et indique comment l'installer sur un service Windows Communication Foundation (WCF).
Remarque : |
---|
Cet exemple requiert l'installation de .NET Framework version 3.5 pour être généré et exécuté. Visual Studio 2008 est nécessaire pour l'ouverture des fichiers projet et solution. |
Les modèles de syndication WCF fonctionnent comme des opérations de service qui renvoient un type de données spécifique (SyndicationFeedFormatter). Les instances de SyndicationFeedFormatter peuvent sérialiser un flux aux formats RSS 2.0 et Atom 1.0. L'exemple de code suivant illustre le contrat utilisé.
[ServiceContract(Namespace = "")]
interface IDiagnosticsService
{
[OperationContract]
//The [WebGet] attribute controls how WCF dispatches
//HTTP requests to service operations based on a URI suffix
//(the part of the request URI after the endpoint address)
//using the HTTP GET method. The UriTemplate specifies a relative
//path of 'feed', and specifies that the format is
//supplied using a query string.
[WebGet(UriTemplate="feed?format={format}")]
[ServiceKnownType(typeof(Atom10FeedFormatter))]
[ServiceKnownType(typeof(Rss20FeedFormatter))]
SyndicationFeedFormatter GetProcesses(string format);
}
L'opération GetProcesses
est annotée avec l'attribut WebGetAttribute, qui permet de contrôler la façon dont WCF distribue les demandes HTTP GET pour effectuer les opérations et spécifier le format des messages envoyés.
Comme pour tout service WCF, les flux de syndication peuvent être auto-hébergés dans toute application managée. Les services de syndication nécessitent une liaison spécifique (WebHttpBinding) et un comportement de point de terminaison spécifique (WebHttpBehavior) afin de fonctionner correctement. La nouvelle classe WebServiceHost fournit une API pratique pour créer ces points de terminaison sans configuration spécifique.
WebServiceHost host = new WebServiceHost(typeof(ProcessService), new Uri("https://localhost:8000/diagnostics"));
//The WebServiceHost will automatically provide a default endpoint at the base address
//using the proper binding (the WebHttpBinding) and endpoint behavior (the WebHttpBehavior)
Vous pouvez aussi utiliser WebServiceHostFactory à partir d'un fichier .svc hébergé dans IIS pour fournir des fonctionnalités équivalentes (cette technique n'est pas démontrée dans cet exemple de code).
<%@ ServiceHost Language="C#|VB" Debug="true" Service="ProcessService" %>
Ce service reçoit des demandes à l'aide d'une demande HTTP GET standard ; par conséquent, vous pouvez utiliser tout client RSS ou ATOM pour accéder au service. Par exemple, vous pouvez consulter la sortie de ce service en naviguant jusqu'à https://localhost:8000/diagnostics/feed/?format=atom ou https://localhost:8000/diagnostics/feed/?format=rss dans un navigateur RSS tel qu'Internet Explorer 7.
Vous pouvez aussi utiliser le Syndication Object Model pour lire les données syndiquées et les traiter à l'aide de code impératif.
XmlReader reader = XmlReader.Create( "https://localhost:8000/diagnostics/feed/?format=rss",
new XmlReaderSettings()
{
//MaxCharactersInDocument can be used to control the maximum amount of data
//read from the reader and helps prevent OutOfMemoryException
MaxCharactersInDocument = 1024 * 64
} );
SyndicationFeed feed = SyndicationFeed.Load( reader );
foreach (SyndicationItem i in feed.Items)
{
XmlSyndicationContent content = i.Content as XmlSyndicationContent;
ProcessData pd = content.ReadContent<ProcessData>();
Console.WriteLine(i.Title.Text);
Console.WriteLine(pd.ToString());
}
Pour configurer, générer et exécuter l'exemple
Assurez-vous que vous disposez de l'autorisation requise pour l'enregistrement de l'adresse pour HTTP et HTTPS sur l'ordinateur, comme l'expliquent les instructions d'installation répertoriées dans Procédure d'installation unique pour les exemples Windows Communication Foundation.
Générez la solution.
Exécutez l'application console.
Au cours de l'exécution de l'application console, naviguez jusqu'à https://localhost:8000/diagnostics/feed/?format=atom ou https://localhost:8000/diagnostics/feed/?format=rss à l'aide d'un navigateur RSS.
Voir aussi
Autres ressources
Web Programming Model
WCF Syndication
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.