CozyRSS开发记录18-番外之Atom1.0的支持

本文介绍了CozyRSS项目中对Atom1.0的支持实现过程,包括通过反射自动解析XML、定义模型以兼容RSS2.0及Atom1.0,并确保返回相同的模型结构,同时提供了单元测试的方法。

CozyRSS开发记录18-番外之Atom1.0的支持

1、对CozyRSS.Syndication批判一番

由于我工作的主要开发语言是c++,所以会看到我的c#代码写得非常朴素,很多语法糖都没有用上。Cozy的第三顺位开发MaxTan(星爷)看了CozyRSS.Syndication的代码后,觉得来一个大改造。我们来看一下星爷的改动吧!

2、利用反射自动解析xml

首先,我把rssxmlmodel定义出来了,里面每一个成员变量都是对应上xml的标签的。那么,自然可以不用写标签名了,星爷的代码如下:

 

3、支持Atom1.0

rss2.0的支持一样,定义好model就可以解析xml了。但是,我们为了外面使用方便,让两种格式解析完后,返回相同的model

先是根据xml的标签,区分协议来解析,然后将model转换:

 

转换也不麻烦:

 

4、单元测试

星爷不愧是专业的.NET程序员,代码也是有配一个单元测试。使用的是:

Microsoft.VisualStudio.TestTools.UnitTesting

具体如下:

 

目前还不详细,先这样吧。

转载于:https://www.cnblogs.com/zapline/p/5524033.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值