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()
创建的对象)。虽然它不会让单个可观察对象返回多个错误,但它会让多个错误在精心制作的可观察对象上传播。