Class TransformingSubject<TSource, TResult>

Namespace
Cratis.Reactive
Assembly
Cratis.Fundamentals.dll

Represents a subject that transforms the input before passing it on to the observers.

public class TransformingSubject<TSource, TResult> : ISubject<TResult>, ISubject<TResult, TResult>, IObserver<TResult>, IObservable<TResult>, IDisposable

Type Parameters

TSource

Type of source.

TResult

Type of converted result.

Inheritance
TransformingSubject<TSource, TResult>
Implements
ISubject<TResult>
ISubject<TResult, TResult>
IObserver<TResult>
IObservable<TResult>
Inherited Members
Extension Methods

Remarks

The transformed result replays its most recent value to whoever subscribes. The source is subscribed to during construction, before any consumer can have attached, so a source emitting synchronously on subscribe - a System.Reactive.Subjects.BehaviorSubject<T> seed, a System.Reactive.Subjects.ReplaySubject<T> buffer - would otherwise have that first value dropped on the floor.

Constructors

TransformingSubject(ISubject<TSource>, Func<TSource, TResult>)

Initializes a new instance of TransformingSubject<TSource, TResult>.

public TransformingSubject(ISubject<TSource> sourceSubject, Func<TSource, TResult> transform)

Parameters

sourceSubject ISubject<TSource>

Subject to observe.

transform Func<TSource, TResult>

Callback for doing transformation.

Methods

Dispose()

public void Dispose()

OnCompleted()

public void OnCompleted()

OnError(Exception)

public void OnError(Exception error)

Parameters

error Exception

OnNext(TResult)

public void OnNext(TResult value)

Parameters

value TResult

Subscribe(IObserver<TResult>)

public IDisposable Subscribe(IObserver<TResult> observer)

Parameters

observer IObserver<TResult>

Returns

IDisposable