CozyRSS开发记录18-番外之Atom1.0的支持
1、对CozyRSS.Syndication批判一番
由于我工作的主要开发语言是c++,所以会看到我的c#代码写得非常朴素,很多语法糖都没有用上。Cozy的第三顺位开发MaxTan(星爷)看了CozyRSS.Syndication的代码后,觉得来一个大改造。我们来看一下星爷的改动吧!
2、利用反射自动解析xml
首先,我把rss的xml的model定义出来了,里面每一个成员变量都是对应上xml的标签的。那么,自然可以不用写标签名了,星爷的代码如下:
3、支持Atom1.0
跟rss2.0的支持一样,定义好model就可以解析xml了。但是,我们为了外面使用方便,让两种格式解析完后,返回相同的model。
先是根据xml的标签,区分协议来解析,然后将model转换:
转换也不麻烦:
4、单元测试
星爷不愧是专业的.NET程序员,代码也是有配一个单元测试。使用的是:
Microsoft.VisualStudio.TestTools.UnitTesting
具体如下:
目前还不详细,先这样吧。