分类: 系统运维
2009-06-17 15:32:49
在我们的RSS阅读器Web站点中创建一个名为RssService.asmx的Web
Service文件,并在其中声明一个名为RssService的Web Service类。由于该Web
Service将用于从客户端直接访问,所以我们要为其添加[System.Web.Script.Services.ScriptService]属
性:
[System.Web.Script.Services.ScriptService]
public class RssService : System.Web.Services.WebService
{
// ......
}
然后在该Web Service中添加一个用来保存默认提要的List
private static List
static RssService()
{
rssEntryList = new List
rssEntryList.Add(RssEntry.CreateNew("ScottGu's Blog",
"http://weblogs.asp.net/scottgu/rss.aspx"));
rssEntryList.Add(RssEntry.CreateNew("Brad Abrams",
"http://blogs.msdn.com/brada/rss.xml"));
rssEntryList.Add(RssEntry.CreateNew("Nikhil Kothari's Weblog",
""));
rssEntryList.Add(RssEntry.CreateNew("博客园-首页原创.net区",
"http://www.cnblogs.com/rss.aspx"));
}
获取当前所有的提要
RSS阅读器左侧导航栏中的提要列表将在客户端应用程序初始化完成之后从服务器端取得当前所有的提要信息。为了给客户端提供这些数据,我们来在Web Service中添加一个名为GetRssEntries()的方法:
///
/// 获取当前所有的提要。
///
///
[WebMethod]
public RssEntry[] GetRssEntries()
{
return rssEntryList.ToArray();
}
添加新提要
用户可以在RSS阅读器中通过输入URL添加感兴趣的新提要,这是通过Web Service中名为AddRssEntry()的方法实现的:
///
/// 添加新的提要。
///
/// 新提要的URL
///
[WebMethod]
public RssEntry AddRssEntry(string rssUrl)
{
// 根据URL创建一个RssFeed对象,并获取其基本信息。
Rss.RssFeed feed = Rss.RssFeed.Read(rssUrl);
// 创建新的RssEntry对象。
RssEntry newEntry = RssEntry.CreateNew(
feed.Channels[0].Title, // 标题
rssUrl // URL
);
// 添加到集合中。
rssEntryList.Add(newEntry);
return newEntry;
}
注意在上述代码中的粗体部分,我们使用了RSS.NET类库中的RssFeed类,根据提要的URL获取了该提要的标题信息。