2015-12-21 115 views
2

我们遇到了方法调用服务返回IObservable<T1>但我们的客户端期望IObservable<T2>。将T1转换为T2是很简单的。Rx:使用不同类型的观察值创建后续可观察值(链接观察者)

Rx中有什么东西允许这个吗? (即链式观察员)

我知道我可以手动创建一个辅助观察者,然后听原始观察者的变化,并将它们转换为新类型,但想知道是否有更干净的方法来做到这一点?

非常感谢,

回答

3

你可以投你IObservable<T1>IObservable<T2>使用Select

IObservable<T2> stream = service.MethodCall().Select(TrivialConversion); 

private T2 TrivialConversion(T1 param) 
{ 
    return new T2(param); 
} 
+0

大谢谢。这很干净,很好。 – kha