myrss.cs
来自「该项目中对 SQLHelper 类进行了简单封装」· CS 代码 · 共 111 行
CS
111 行
/*
* MyRss.cs @Microsoft Visual Studio 2008 <.NET Framework 3.5>
* AfritXia
* 2008-01-28
*
* Copyright(c) http://www.AfritXia.NET/
*
*/
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using NET.AfritXia.MyHome.HomeStart.CodeLand.ServiceProxy;
using NET.AfritXia.MyHome.Model.Message;
using NET.AfritXia.RssFoundation;
namespace NET.AfritXia.MyHome.HomeStart.CodeLand
{
/// <summary>
/// 自定义 RSS 生成类
/// </summary>
public sealed class MyRss
{
// Rss 工厂类
private static RssFactory g_myRssFactory = null;
#region 类构造器
/// <summary>
/// 类静态构造器
/// </summary>
static MyRss()
{
lock (typeof(MyRss))
{
// 创建新实例
g_myRssFactory = new RssFactory();
// 设置 item 标记转换器
g_myRssFactory.RssItemTagConverter = new MyRssItemTagConverter();
}
}
#endregion
/// <summary>
/// 构建 RSS 内容
/// </summary>
/// <param name="outputStream"></param>
public static void BuildRssContent(Stream outputStream)
{
if (outputStream == null)
return;
int allRecordCount = 0;
// 获取文章列表
IList<Article> articleList = ServiceProxyFactory.CreateArticleService().GetArticleList(2, 0, 20, out allRecordCount);
if (articleList == null || articleList.Count <= 0)
return;
// 创建 RSS 实例
Rss rssInstance = g_myRssFactory.Create();
// title
rssInstance.Root.Channel.Title = "My Article";
// link
rssInstance.Root.Channel.Link = "http://www.afritxia.net/HomeStart/ArticleList.aspx";
// description
rssInstance.Root.Channel.Description = "我的文章";
// 添加文章列表到 rss
rssInstance.AddDataItems(articleList);
// 写出 XML 内容
rssInstance.WriteXmlContent(outputStream);
}
/// <summary>
/// 自定义 item 转换器类
/// </summary>
private class MyRssItemTagConverter : IRssItemTagConverter
{
#region IRssItemTagConverter Members
public RssItemTag Convert(object srcObj)
{
Article article = srcObj as Article;
if (article == null)
return null;
RssItemTag item = new RssItemTag();
// title
item.Title = article.Title;
// author
item.Author = article.PostUser;
// description
item.Description = article.Summary;
// pubDate
item.PubDate = article.PostTime;
// link
item.Link = "http://www.afritxia.net/HomeStart/ArticleView.aspx?ArticleUID=" + article.UniqueID;
return item;
}
#endregion
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?