/* 
.Net/C#: 利用反射编写通用的 rss 2.0 的 reader 
最近在写一个 Simple Rss Reader 
网上找到现成代码两种: 
1.代码简单的,但不够通用 (如: 本站的一些专用 rss reader) 
2.代码复杂的,但没有足够时间去消化 (如: rssbandit) 
遂自己动手: 
由于 rss 的基本属性大家都有! 
但一些特殊不通用属性,如: 
slash:comments 
wfw:comment 
wfw:commentRss 
trackbackping 
不一定存在! 如何处理??? 
我想到了 Reflection,就此提出以下解决方案: 
1. Class RssHeader 用于表示 Rss 的头信息 
 你可以在为其添加新属性,原则是: 
 成员变量 Fieild 的名称为 rss 的 XML 源对应的属性名称前加下划线,XML 属性名称含有 ":" 将其滤掉! 
 如: zh-CHS 
 将其影射为: 
  private string _dclanguage 
  public string DcLanguage 
  { 
   get 
   { 
    return this._dclanguage; 
   } 
  } 
2. Class RssItem 用于表示 Rss 的 Item 
 添加新属性的原则同 RssHeader! 
3. 获取 rss 的 XML 源后通过递归遍历节点 (class SimpleRssReader) 
 根据实际存在的 rss 属性,通过反射,"构造实例化" RssHeader 和 RssItem! 
 请仔细参阅 class SimpleRssReader 的 Travel 方法! 
4. 数据库 (本文使用了 Micrshaoft Data Access Application Block 3.1) 
 表: 
 Channels (主表) 
 ChannelsDetails (细表) 
 字段名称及其数据类型严格按照 rss 的 XML 源对应的属性名称,XML 属性名称含有 ":" 将其滤掉! 
 存储过程: 
 SP_AddChannel 
 SP_AddChannelsDetails 
 参数名称及其数据类型严格按照 rss 的 XML 源对应的属性名称,XML 属性名称含有 ":" 将其滤掉!