2012-10-10 32 views
3

嘲讽由第三方制作的LINQ Web服务数据提供者是什么,对我来说实际上是一个黑匣子?这里是一个黑盒子的典型用法:(修改,以保护无辜者,又名一个NDA)如何模拟第三方Web服务LINQ数据提供者?

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 }; 

我到目前为止知道resultIEnumerable<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知识目前基于覆盖到覆盖读乔恩斯基特的C#的深入开展,并没有多少人......)

+0

你做什么将基于你真正想要确保工作。我不是100%确定“全功能”LINQ数据提供者的含义。 –

+0

@Ramhound我不确定我的意思是“全开”!深入的c#书不会显示如何编写LINQ数据提供程序,但在提及它们时并不重要。一个特别的问题是如果我需要编写代码来处理Where子句。 (我想不是:如果我的模拟版本只是返回一大块数据,那么LINQ To Objects应该使用其内置的Where函数来过滤它?) –

回答

1

一个List<T>一般是足够的(因为它实现IEnumerable)。但是,如果您想知道查询的实际性能,则不会使用实际的RemoteServer。

相关问题