C# RSS客户端的设计注意事项
我需要使用c开发一个RSS客户端,我想知道任何RSS客户端如何存储用户阅读的内容。 简单的答案是存储每个url的所有提要,并标记用户是否阅读它。 因此,我需要知道其他RSS客户端如何管理提要状态,以避免用户读取提要或不读取提要。他们是否存储来自所有URL的所有提要 另外,我需要知道是否有任何使用pubsubhubbub协议的客户端.net库 比如说, 如果我订阅CNN提要,应用程序将加载当前的CNN提要,然后我将其读取。之后,我打开客户端,我会发现我读的所有提要都标记为已读 这意味着,客户端将存储(例如在其数据库中)CNN提要的所有链接,并为每个链接保存其状态,无论其是否已读C# RSS客户端的设计注意事项,c#,rss,rss-reader,websub,C#,Rss,Rss Reader,Websub,我需要使用c开发一个RSS客户端,我想知道任何RSS客户端如何存储用户阅读的内容。 简单的答案是存储每个url的所有提要,并标记用户是否阅读它。 因此,我需要知道其他RSS客户端如何管理提要状态,以避免用户读取提要或不读取提要。他们是否存储来自所有URL的所有提要 另外,我需要知道是否有任何使用pubsubhubbub协议的客户端.net库 比如说, 如果我订阅CNN提要,应用程序将加载当前的CNN提要,然后我将其读取。之后,我打开客户端,我会发现我读的所有提要都标记为已读 这意味着,客户端将存
我的问题是,有没有其他方法来跟踪订阅源是否已读取,而不是将所有站点的所有订阅源保存在数据库中,这将导致巨大的数据库欢迎使用StackOverflow:D 表示RSS源 您可以使用以下类型来表示提要和文章:
using System;
using System.Collections.Generic;
using System.Linq;
public abstract class RssItem
{
public virtual bool IsRead { get; set; }
public string Name { get; set; }
public string Url { get; set; }
}
public class RssFeed : RssItem
{
public List<RssFeedArticle> Articles { get; set; }
public override bool IsRead
{
get { return Articles.All(s => s.IsRead); }
set { Articles.ForEach(s => s.IsRead = true); }
}
}
public class RssFeedArticle : RssItem
{
public string Content { get; set; }
}
存储数据
常用的方法是将应用程序数据存储在ApplicationData文件夹或“我的文档”中
使用“我的文档”的好处是,用户通常会备份此文件夹,而不一定是ApplicationData,因为新手用户可能甚至不知道它的存在
检索应用程序文件夹的示例:
using System.IO;
private void Test()
{
string applicationFolder = GetApplicationFolder();
}
private static string GetApplicationFolder()
{
var applicationName = "MyCoolRssReader";
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
string applicationFolder = Path.Combine(folderPath, applicationName);
bool exists = Directory.Exists(applicationFolder);
if (!exists)
{
Directory.CreateDirectory(applicationFolder);
}
return applicationFolder;
}
如果您更喜欢我的文档:
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
以下是Microsoft开发人员的一些解释/建议:
pubsubhubbub
有一个C语言库:
从
如果你对我的回答感到满意,那么别忘了接受它;如果您仍有疑问,请更新您的问题,我将尝试回答。我说的是RSS web客户端,而不是windows。因此,我无法使用“我的文档”文件夹。我需要知道如何在任何RSS提要中跟踪读取的URL,对于Google链接,它仍在进行中,没有发布您的问题以及所有相关细节。
string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);