微软 MVP, Mehfuz Hossain 创建了一个 LINQ to Twitter 提供者。这个示例再一次证明了 LINQ 不仅仅是一个访问数据库的框架,它可以用于任何类型的对象,包括 tweet。
LINQ to Twitter 使用了 Yedda,一个 Twitter API 的 C#/.NET 封装类库。对于 Twitter 方法,如 Status、User 或 Friends,Yedda 可以返回 XML、JSON、RSS 或 ATOM。
LINQ to Twitter 使用 Yedda 返回的 XML,并基于 LINQExtender 将其转化为可查询的对象。LINQ Extender 是一个可自由使用的类库,提供了创建 LINQ 提供者的基础功能。根据 Hossain 的说法,使用 LINQExtender 创建一个提供者需要分两步走:
首先你必须定义一个查询对象,使其实现 IQueryObject 接口,再创建一个 Query
的子类并覆盖(override)一些方法。
以下为一个查询示例:
TwitterContext context = new TwitterConext(); var query = from twit in context where twit.Username == "myuser" && twit.Password == "mypass" && twit.Timeline == Timeline.Friends orderby twit.LastUpdated descending select twit;
另一个基于 LINQExtender 的 LINQ 提供者是 LINQ.Flicker,它可对 Flickr 的照片进行查询,添加,删除,评论等操作。LINQExtender 使用 MIT license 。
相关链接:LINQ to Twitter源代码(ZIP)、 LinqExtender 、 LinqExtender 使用指导。
评论