经过几天的努力终于差不多把Rss源订阅和阅览基本上整合到我的浏览器中了,中间还颇有波折,一开始是TreeNode无法序列化扩展的属性,能够序列化的属性只有很少的几个,第二个问题就是rss源编码的问题,每个网站提供的rss源的编码各不相同,导致解析很是费劲,不过总算还是解决了,就是TreeNode节点序列化的问题,虽然解决了但是不是很完美,采取了一点技巧,把要序列化的值编码到Text属性中,反序列化时就对其进行解码,本来应该可以通过自定义序列化实现的,但是没成功,只好采取下策了.虽然不算很完美总算还是解决了,整合的过程中利用了很多已有的资源,并没有独立于以前的东西实现,rss源解析器可以独立应用,整合类依赖浏览器提供的功能,比如说显示在tab控件中的tabpage就是继承了已有的一个page类,通过扩展来兼容于浏览器的.序列化和填充器(填充ListView)都采取了以前编写的dll库.
实现步骤:
1.定义完整的Rss结构 (RssStruct)
2.实现rss源解析,解析后存储到rss结构中,以便于使用(RssReader)
3.Hash表: RssHashTable,提供缓存Rss结构和自动刷新的功能,
4.实现用到的控件扩展:
TreeNode(存储频道信息),
TreeView(提供序列化和反序列化功能),
SideBar(侧边栏,提供浏览收藏,历史访问,Rss源访问的功能),
RssInfo(显示Rss频道的详细信息),
RssTabPage(容纳所有的频道列表,以便于选择阅览)
5.整合到MyIE中,提供界面支持.同时内置了很多频道,方便于阅览.
呵呵,从此后我的浏览器就可以使用Rss功能支持了,方便于阅读很多源.以后就是浏览器,Rss阅览器两用的软件了.
以下是截图: (点击可以放大)