又一个 LINQ 提供者:LINQ to Twitter

  • Abel Avram

2009 年 3 月 19 日

话题:.NETDevOps语言 & 开发架构

微软 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<T>的子类并覆盖(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)、LinqExtenderLinqExtender 使用指导

查看英文原文:LINQ-to-Twitter, Another LINQ Provider

.NETDevOps语言 & 开发架构