特定のロジックでアイテムを通過する方法を探しています。最も明白な答えは、おそらくほとんどの場合で動作する .Select を使用することですが、私には特別なケースがあり、質問は実際には、アイテムがすべてのサブスクライバーによって消費された後に特定のメソッドを呼び出す方法として言い換えることができますか?
このような拡張機能を考えてPassThrough(this IObservable<TSource> obj, Action<TSource, IObserver<TResult>> selector)
いましたが、次のように使用します
.PassThrough((source, observer) => {
if(source != null) {
using(var result = new Result(source)) {
observer.OnNext(result);
}
}
});
これの最も重要な部分は、オブジェクトが OnNext に渡された後、つまりサブスクライバーによって消費された後、結果オブジェクトに対して .Dispose を呼び出すことです。そのような拡張方法は見つかりませんでした。既存のRx.NET APIでそれを達成する方法、またはこれを行う拡張機能を作成する方法を誰かが例を挙げてもらえますか?