C# 如何将多个错误传递给ReplaySubject?
如何将多个错误传递给C# 如何将多个错误传递给ReplaySubject?,c#,error-handling,system.reactive,C#,Error Handling,System.reactive,如何将多个错误传递给ReplaySubject 当我调用OnError时,只传递第一个异常。我需要多次调用,并传递所有错误/异常 我看到内部RX创建了一个AnonymousSafeObserver,并且OnError正在调用Dispose 我是否可以创建自己版本的AnonymousSafeObserver如何更改功能 非常感谢。您不能在接收流中发送多个错误。Rx的一个基本属性是,可观察物表现出以下语法: OnNext*(OnError|OnCompleted)? 也就是说,流由零个或多个OnN
ReplaySubject
当我调用OnError
时,只传递第一个异常。我需要多次调用,并传递所有错误/异常
我看到内部RX
创建了一个AnonymousSafeObserver
,并且OnError
正在调用Dispose
我是否可以创建自己版本的AnonymousSafeObserver
如何更改功能
非常感谢。您不能在接收流中发送多个错误。Rx的一个基本属性是,可观察物表现出以下语法:
OnNext*(OnError|OnCompleted)?
也就是说,流由零个或多个OnNext
事件组成,然后可选地后跟单个OnError
或OnCompleted
匿名安全观察者
只是强制执行这个不变量
听起来您的错误实际上是流的数据,而不是流本身异常终止的信号。在这种情况下,创建一个类型来携带此数据,并通过OnNext
发送该数据。您不能将多个错误发送到Rx流中。Rx的一个基本属性是,可观察物表现出以下语法:
OnNext*(OnError|OnCompleted)?
也就是说,流由零个或多个OnNext
事件组成,然后可选地后跟单个OnError
或OnCompleted
匿名安全观察者
只是强制执行这个不变量
听起来您的错误实际上是流的数据,而不是流本身异常终止的信号。在这种情况下,创建一个类型来携带此数据,并通过OnNext
发送该数据。值得注意的是,您可以调用observable上的.Materialize()
,将其从IObservable
转换为IObservable
。这允许标准的.OnError(…)
调用以.OnNext(…)
的形式发送,然后可以允许多个.OnError(…)
调用出现在复杂的可观察对象中(例如使用.Merge()
创建的对象)。虽然它不会让单个observable返回多个错误,但它会让多个错误在精心设计的observable上传播。值得注意的是,您可以对observable调用.Materialize()
,将其从IObservable
转换为IObservable
。这允许标准的.OnError(…)
调用以.OnNext(…)
的形式发送,然后可以允许多个.OnError(…)
调用出现在复杂的可观察对象中(例如使用.Merge()
创建的对象)。虽然它不会让单个可观察对象返回多个错误,但它会让多个错误在精心制作的可观察对象上传播。