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
TSourceType of source.
TResultType 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
sourceSubjectISubject<TSource>Subject to observe.
transformFunc<TSource, TResult>Callback for doing transformation.
Methods
Dispose()
public void Dispose()
OnCompleted()
public void OnCompleted()
OnError(Exception)
public void OnError(Exception error)
Parameters
errorException
OnNext(TResult)
public void OnNext(TResult value)
Parameters
valueTResult
Subscribe(IObserver<TResult>)
public IDisposable Subscribe(IObserver<TResult> observer)
Parameters
observerIObserver<TResult>