模拟LINQ Web服务数据提供程序(由第三方制作)涉及到什么,对我来说实际上是一个黑盒子?以下是该黑匣子的典型用法:(经过修改以保护无辜者,又称为NDA)
var conn = new RemoteServer (username,password);
var result = from row in conn.GetSomeData()
where row.this == "Hello" && row.that != "World"
select new { row.this, row.that, row.theOther };
到目前为止,我知道result
是IEnumerable<T>
。
另一个用法示例:
string something="xxx";
var result = from row in conn.SubscribeAsync()
where row.this == something
select new MyObject(something) { row.that, row.theOther };
(这会继续推送数据,也许每秒推送一些项目,我会想要仔细模拟定时序列。)
我想我真正的问题是,它会如此简单:
class MockRemoteServer
{
IEnumerable GetSomeData()
{
return new[]
{
new {this="1",that="2",theOther="special"},
new {this="hello",that="world",theOther="something"}
}
}
}
或者我是否需要自己实现全面的LINQ数据提供程序? 如果是这样,任何书籍或文章的建议? (我的LINQ知识目前基于Jon Skeet的C#In Depth的封面到封面阅读,而不是其他......)
答案 0 :(得分:1)
List<T>
通常就足够了(因为它实现了IEnumerable)。但是,如果您想知道查询的实际性能,则无需使用实际的RemoteServer。