# Подачі RSS...

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

<!-- category -- mostlylucidcouk, Imported, ASP.NET, XML, Web Development -->
[Роб Говард запитав](http://weblogs.asp.net/RHoward/posts/39662.aspx) те, як інші люди робили подачі RSS, це було останнім часом проблемою для мене, де я повинен був створювати подачі RSS для існуючих об' єктів. Я використав невелику збірку класів, щоб зробити це, яке я вивантажив. [тут](/uploads/RssClasses.zip)Ось короткий приклад того, як я рефренсую, використовуючи ці назви (назва видалені для захисту невинних) - зауважте, це не EXACT Rss, я додав одне поле, xsdDate, тому що мені потрібно було зробити це для перетворення (не перериває читачів, які мають цей додатковий біт!), пізніше я оновлю це трохи більше інформації про це.... Назагалі, він передає через елементи об' єкта (погано) з назвою HemFeedStuct і створює запис для кожного з них... [Adam Kinney's](http://weblogs.asp.net/akinney) з [Робочий простір GotDotNet](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();
        }
```