你能帮我检测一下丢失的指令(未找到扩展方法)

时间:2015-07-31 10:52:06

标签: system.reactive

我开始使用.NET的rx扩展并下载了一些来源。

基本示例工作正常,但是有一个函数显然导致错误,因为未声明扩展方法(应该使用某个指令导入)

导致错误的代码行是注释源中的第二个(list.Run)(我评论说可以编译):

/*

    protected static void WriteListToConsole<T>(IEnumerable<T> list, string name) {

      list.Run(

        value => Console.WriteLine("{0} : {1}", name, value),

        () => Console.WriteLine("{0} Completed", name));

    }

     */

看起来Rx定义了一个分机。方法运行到IEnumerable但我没有导入它。

我安装了Rx v2.0.3 SDK.msi,在我的项目中向所有System.Reactive添加了引用。*我发现并使用了:

 using System;
 using System.Reactive.Subjects;
 using System.Reactive.Linq;
 using System.Collections.Generic;
 using System.Linq;
 using System.Text;
 using System.Threading.Tasks;

我也尝试在我的项目中使用Nuget rx.main和ix.main包,但错误始终存在。

在Google上搜索IEnumerable + Run不会给我任何信息。

任何帮助表示感谢。

由于

1 个答案:

答案 0 :(得分:0)

嗨,我认为这是你正在看的一个非常古老的样本。

现在,用ForEach dll中的System.Linq命名空间(我认为是IX-Main nuget)中的扩展方法System.Interactive替换了它。

您还会注意到 OnCompleted 函数参数已经消失,因为这是一个愚蠢的想法。新代码应如下所示:

protected static void WriteListToConsole<T>(IEnumerable<T> list, string name) 
{
    list.ForEach(value => Console.WriteLine("{0} : {1}", name, value));
    Console.WriteLine("{0} Completed", name);
}