- Voeg aan je web project een nieuw item toe door met de rechter muisknop op het project te klikken en "Add/New item" te selecteren
- Selecteer de "Generic Handler" template en geef deze de naam 'rss.ashx'
Het *.ashx bestand met het code-behind klasse bestand (*.cs) wordt gegenereerd - De klasse implementeert de interface IHttpHandler en de bijbehorende methodes en eigenschappen zijn hierbij reeds aangemaakt.
- We gaan nu de methode 'ProcessRequest' aanpassen om een RSS feed in het Response object te schrijven. Verwijder eerst de bestaande voorbeeld code
- Om RSS feeds te genereren hebben we een extra reference in het project nodig, namelijk: "System.ServiceMode.Web". Klik in het webproject met de rechter muisknop op 'References' en selecteer "Add Reference". Selecteer in de lijs met .Net componenten het betreffende component.
- Maak een instantie van de klasse 'SyndicationFeed':
SyndicationFeed feed = new SyndicationFeed("RSS titel", "RSS omschrijving", new Uri("http://localhost"));
Voeg hiervoor de volgende "using directive" (bonvenin de klasse) toe:
using System.ServiceModel.Syndication; - Voeg (als voorbeeld) twee items aan de RSS feed toe:
feed.Items = new List http://localhost/item1.aspx")),
{
new SyndicationItem("Item 1", "Het 1e RSS item", new Uri("
new SyndicationItem("Item 2", "Het 2e RSS item", new Uri("http://localhost/item2.aspx"))
}; - Schrijf de RSS feed naar het Response object:
using (System.IO.StringWriter output = new System.IO.StringWriter())
{
System.Xml.XmlTextWriter writer = new System.Xml.XmlTextWriter(output);
new Rss20FeedFormatter(feed).WriteTo(writer);
context.Response.ContentType = "application/rss+xml";
context.Response.Write(output.ToString());
} - Als je nu rss.ashx opstart in je webproject dan zul je zien dat er netjes een RSS feed wordt 'gerendert'.
In punt 7 zou je natuurlijk een database (of andere databron) uit kunnen lezen om automatisch RSS items toe te voegen aan je feed.
Succes ermee !!!
Geen opmerkingen:
Een reactie posten