找不到Rx Dump()方法

时间:2018-01-25 13:03:43

标签: c# system.reactive

我在这里以及在Dump()序列上使用IObservable<T>方法的其他网站上的各种帖子和教程中看到了很多答案。但是,当我尝试使用它时,我从编译器收到... does not contain a definition for 'Dump' and no extension method for 'Dump' ... Cannot resolve symbol 'Dump'警告。它是从Rx中删除的,还是我错过了一个库?

2 个答案:

答案 0 :(得分:2)

是的我同意LinqPad中存在的评论,但您可以像http://www.introtorx.com/content/v1.0.10621.0/07_Aggregation.html

一样编写自己的评论
public static class SampleExtentions
{
    public static void Dump<T>(this IObservable<T> source, string name)
    {
        source.Subscribe(
           i=>Console.WriteLine("{0}-->{1}", name, i), 
           ex=>Console.WriteLine("{0} failed-->{1}", name, ex.Message),
           ()=>Console.WriteLine("{0} completed", name));
    }
}

答案 1 :(得分:1)

推荐使用LINQPad相关的nuget包(LINQPad官方提供),然后就可以使用它的Dump()方法了。

LINQPad

对于 .NET 核心:

  • 安装 LINQPad.Runtime

对于 .NET framework 4 等

  • 安装 LINQPad

示例代码:

using System;
using LINQPad;
namespace csharp_Dump_test
{
    public class Program
    {
        public static void Main()
        {
            try
            {
                dosome();
            }
            catch (Exception ex)
            {
                ex.Dump();
            }
        }

        private static void dosome()
        {
            throw new Exception("Unable.");
        }
    }
}