# Feed RSS...

<datetime class="hidden">2004-03-12T00:00</datetime>

<!-- category -- mostlylucidcouk, Imported, ASP.NET, XML, Web Development -->
[Rob Howard ha chiesto](http://weblogs.asp.net/RHoward/posts/39662.aspx) come altre persone stavano facendo feed RSS, bene questo è stato un problema per me di recente, dove ho dovuto generare feed RSS per gli oggetti esistenti. Ho usato una piccola collezione di classi per fare questo che ho caricato [qui](/uploads/RssClasses.zip), ecco un rapido esempio di come sto currenlty usando questi (i nomi rimossi per proteggere gli innocenti) - nota, questi non sono EXACT Rss, ho aggiunto un campo, xsdDate, 'perché avevo bisogno di questo per una trasformazione (non rompe i lettori che hanno questo bit in più però!), lo aggiornerò più tardi con un po 'più informazioni su questi ... essenzialmente passa attraverso gli elementi in un oggetto (cattivo) di nome ItemFeedStruct e crea una voce per ciascuno ... facendo un ToString() poi mi dà il feed completo RSS per questo. Nota, non ho scritto le classi RSS originariamente, ma non riesco a trovare il link alla persona che ha fatto - se ot era, lasciare un commento! [Adam Kinney's](http://weblogs.asp.net/akinney) dal [GotDotNet Workspace](http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=82651160-90f3-48af-9f99-1e534472f6e8)

```
        private void BindRssControls(ItemFeedStruct theFeed)
        {
            
            string thisUrl = "http://" + Request.Url.Host + Application["AppPath"];
            RSSFeed rFeed = new RSSFeed("Latest  " + cts.ContentTypeName,thisUrl,"Feed for  Communities");
    
            for(int i=0; i < theFeed.items.Length; i++)
            {
                RSSItem rItem;
                if(_contentType != ctl.ForumThreads)
                {
                    rItem = new RSSItem(Server.HtmlEncode(theFeed.items[i].ItemTitle),Server.HtmlEncode(theFeed.items[i].ShortDescription));    
                }
                else
                {
                    string longDesc= theFeed.items[i].LongDescription;
                    if(longDesc.IndexOf(' ') > -1)
                    {
                        longDesc= longDesc.Substring(0,longDesc.LastIndexOf(' '));
                    }
                    rItem = new RSSItem(Server.HtmlEncode(theFeed.items[i].ItemTitle),Server.HtmlEncode(longDesc));    
                }
                rItem.PubDate = theFeed.items[i].ItemValidFrom.ToUniversalTime().ToString("r");
                rItem.XsdDate = theFeed.items[i].ItemValidFrom.ToString("s");
                rItem.Guid = theFeed.items[i].itemId.ToString();
                rItem.Link = Server.HtmlEncode(theFeed.items[i].ViewUrl);
                rItem.Author = Server.HtmlEncode(theFeed.items[i].AuthorName);
                RSSCategoryCollection rCat = new RSSCategoryCollection();
                rCat.Add(new RSSCategory(Server.HtmlEncode(theFeed.items[i].Category)));
                rItem.Categories = rCat;
                rFeed.Items.Add(rItem);
            }
            Response.ContentType = "text/xml";
            Page.EnableViewState = false;
            RssLiteral.Text = rFeed.ToString();
        }
```