Compartir a través de


ISubject<interfaz de T>

Representa un objeto que es una secuencia observable, así como un observador.

espacio de nombres : System.Reactive.Subjects
ensamblado de : System.Reactive (en System.Reactive.dll)

Sintaxis

'Declaration
Public Interface ISubject(Of T) _
    Inherits ISubject(Of T, T), IObserver(Of T),  _
    IObservable(Of T)
'Usage
Dim instance As ISubject(Of T)
public interface ISubject<T> : ISubject<T, T>, 
    IObserver<T>, IObservable<T>
generic<typename T>
public interface class ISubject : ISubject<T, T>, 
    IObserver<T>, IObservable<T>
type ISubject<'T> =  
    interface
        interface ISubject<'T, 'T>
        interface IObserver<'T>
        interface IObservable<'T>
    end
JScript does not support generic types and methods.

Parámetros de tipo

  • T
    Tipo del asunto.

El tipo de><T<ISubject expone los siguientes miembros.

Métodos

  Nombre Descripción
método Public OnCompleted (Se hereda de IObserver<T>).
método Public onError (Se hereda de IObserver<T>).
método Public OnNext (Se hereda de IObserver<T>).
método Public suscribirse (Se hereda de IObservable<T>).

Arriba

Métodos de extensión

  Nombre Descripción
método de extensión pública <T>(Func<T, T, T>) Sobrecargado. Aplica una función de acumulador a través de una secuencia observable. (Definido por observable).
método de extensión pública <T agregado, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) Sobrecargado. Aplica una función de acumulador sobre una secuencia observable con el valor de inicialización especificado. (Definido por observable).
método de extensión pública todas las> T de< Determina si todos los elementos de una secuencia observable cumplen una condición. (Definido por observable).
método de extensión pública Amb<T> Propaga la secuencia observable que reacciona primero con la primera y segunda secuencia especificadas. (Definido por observable).
método de extensión pública Y<T, TRight> Coincide cuando ambas secuencias observables tienen un valor disponible. (Definido por observable).
método de extensión pública <T>() Sobrecargado. Determina si una secuencia observable contiene elementos. (Definido por observable).
método de extensión pública Cualquier>T de<(Func<T,>booleano ) Sobrecargado. Determina si todos los elementos de una secuencia observable cumplen una condición. (Definido por observable).
método de extensión pública asObservable<T> Oculta la identidad de una secuencia observable. (Definido por observable).
método de extensión pública AsObserver<T> Oculta la identidad de un observador. (Definido por Observer).
método de extensión pública asQbservable<T> Convierte una secuencia observable en una secuencia observable consultable. (Definido por Qbservable).
método de extensión pública AssertEqual<T> (Definido por extensiones de ).
método de extensión pública Búfer<T>(Int32) Sobrecargado. Indica cada elemento de una secuencia observable en búferes consecutivos no superpuestos que se generan en función de la información de recuento de elementos. (Definido por observable).
método de extensión pública de búfer deT (TimeSpan) Sobrecargado. Indica cada elemento de una secuencia observable en búferes consecutivos no superpuestos que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública búfer<T>(Int32, Int32) Sobrecargado. Indica cada elemento de una secuencia observable en cero o más búferes que se generan en función de la información de recuento de elementos. (Definido por observable).
método de extensión pública de búfer deT (TimeSpan, IScheduler) Sobrecargado. Indica cada elemento de una secuencia observable en búferes consecutivos no superpuestos que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública Búfer<T>(TimeSpan, TimeSpan) Sobrecargado. Indica cada elemento de una secuencia observable en cero o más búferes que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública Tbuffer (TimeSpan, Int32) Sobrecargado. Indica cada elemento de una secuencia observable en un búfer que se envía cuando está lleno o una cantidad determinada de tiempo transcurrido. (Definido por observable).
método de extensión pública Búfer<T>(TimeSpan, TimeSpan, IScheduler) Sobrecargado. Indica cada elemento de una secuencia observable en cero o más búferes que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública buffer<T>(TimeSpan, Int32, IScheduler) Sobrecargado. Indica cada elemento de una secuencia observable en un búfer que se envía cuando está lleno o una cantidad determinada de tiempo transcurrido. (Definido por observable).
método de extensión pública buffer<T, TBufferClosing>(func<IObservable<TBufferClosing>>) Sobrecargado. Indica cada elemento de una secuencia observable en búferes consecutivos no superpuestos. (Definido por observable).
método de extensión pública buffer<T, TBufferOpening, TBufferClosing>(IObservable<TBufferOpening>, Func<TBufferOpening, IObservable<TBufferClosing>>) Sobrecargado. Indica cada elemento de una secuencia observable consultable en búferes consecutivos que no se superponen. (Definido por observable).
método de extensión pública catch<T>(IObservable<T>) Sobrecargado. Continúa una secuencia observable finalizada por una excepción con la siguiente secuencia observable. (Definido por observable).
método de extensión pública Catch<T, TException>(Func<TException, IObservable<T>>) Sobrecargado. Continúa una secuencia observable terminada por una excepción del tipo especificado con la secuencia observable generada por el controlador. (Definido por observable).
método de extensión pública CombineLatest<T, TSecond, TResult> Combina dos secuencias observables en una secuencia observable mediante el uso de la función selector cada vez que una de las secuencias observables genera un elemento. (Definido por observable).
método de extensión pública Concat<T> Concatena dos secuencias observables. (Definido por observable).
método de extensión pública contiene>T<(T) Sobrecargado. Determina si una secuencia observable contiene un elemento especificado mediante el comparador de igualdad predeterminado. (Definido por observable).
método de extensión pública contiene>T<(T, IEqualityComparer<T>) Sobrecargado. Determina si una secuencia observable contiene un elemento especificado mediante un objeto System.Collections.Generic.IEqualityComparer especificado< T>. (Definido por observable).
método de extensión pública Count<T> Devuelve un int32 que representa el número total de elementos de una secuencia observable. (Definido por observable).
método de extensión pública defaultIfEmpty<T>() Sobrecargado. Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una secuencia singleton si la secuencia está vacía. (Definido por observable).
método de extensión pública >T (T)<DefaultIfEmpty (T) Sobrecargado. Devuelve los elementos de la secuencia especificada o el valor predeterminado del parámetro de tipo en una secuencia singleton si la secuencia está vacía. (Definido por observable).
método de extensión pública retraso<>T (TimeSpan) Sobrecargado. Indica la secuencia observable en tiempo de vencimiento con el origen y dueTime especificados. (Definido por observable).
método de extensión pública delay<T>(DateTimeOffset) Sobrecargado. Indica la secuencia observable en tiempo de vencimiento con el origen y dueTime especificados. (Definido por observable).
método de extensión pública delay<T>(TimeSpan, IScheduler) Sobrecargado. Indica la secuencia observable por tiempo de vencimiento con el origen, dueTime y scheduler especificados. (Definido por observable).
método de extensión pública delay<T>(DateTimeOffset, IScheduler) Sobrecargado. Indica la secuencia observable por tiempo de vencimiento con el origen, dueTime y scheduler especificados. (Definido por observable).
método de extensión pública >T<() Sobrecargado. Devuelve una secuencia observable que contiene solo elementos distintos con un origen especificado. (Definido por observable).
método de extensión pública <T>(IEqualityComparer<T>) Sobrecargado. Devuelve una secuencia observable que contiene solo elementos distintos según el comparador. (Definido por observable).
método de extensión pública distinct<T, TKey>(Func<T, TKey>) Sobrecargado. Devuelve una secuencia observable que contiene solo elementos distintos según keySelector. (Definido por observable).
método de extensión pública Distinct<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) Sobrecargado. Devuelve una secuencia observable que contiene solo elementos distintos según keySelector. (Definido por observable).
método de extensión pública DistinctUntilChanged<T>() Sobrecargado. Devuelve una secuencia observable que contiene solo distintos elementos contiguos con un origen especificado. (Definido por observable).
método de extensión pública DistinctUntilChanged<T>(IEqualityComparer<T>) Sobrecargado. Devuelve una secuencia observable que contiene solo distintos elementos contiguos según el comparador. (Definido por observable).
método de extensión pública DistinctUntilChanged<T, TKey>(Func<T, TKey>) Sobrecargado. Devuelve una secuencia observable que contiene solo distintos elementos contiguos según keySelector. (Definido por observable).
método de extensión pública DistinctUntilChanged<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) Sobrecargado. Devuelve una secuencia observable que contiene solo distintos elementos contiguos según keySelector y el comparador. (Definido por observable).
método de extensión pública <T>(Action<T>) Sobrecargado. Invoca una acción para cada elemento de la secuencia observable. (Definido por observable).
método de extensión pública <T>(IObserver<T>) Sobrecargado. Invoca una acción para cada elemento de la secuencia observable e invoca una acción tras la finalización excepcional de la secuencia observable. (Definido por observable).
método de extensión pública >T<(Acción<T>, Acción) Sobrecargado. Invoca una acción para cada elemento de la secuencia observable e invoca una acción tras la finalización correcta de la secuencia observable. (Definido por observable).
método de extensión pública <T>(Action<T>, Action<Exception>) Sobrecargado. Invoca una acción para cada elemento de la secuencia observable e invoca una acción tras la finalización excepcional de la secuencia observable. (Definido por observable).
método de extensión pública Do<T>(Action<T>, Action<Exception>, Action) Sobrecargado. Invoca una acción para cada elemento de la secuencia observable e invoca una acción tras una terminación correcta o excepcional de la secuencia observable. (Definido por observable).
método de extensión pública ElementAt<T> Devuelve el elemento en un índice especificado de una secuencia. (Definido por observable).
método de extensión pública ElementAtOrDefault<T> Devuelve el elemento de un índice especificado en una secuencia o un valor predeterminado si el índice está fuera del intervalo. (Definido por observable).
método de extensión pública por último<T> Invoca una acción especificada después de que la secuencia observable de origen finalice normalmente o por una excepción. (Definido por observable).
método de extensión pública T() Sobrecargado. Devuelve el primer elemento de una secuencia observable con un origen especificado. (Definido por observable).
método de extensión pública First<T>(Func<T, booleano>) Sobrecargado. Devuelve el primer elemento de una secuencia observable que coincide con el predicado. (Definido por observable).
método de extensión pública >T<FirstOrDefault () () Sobrecargado. Devuelve el primer elemento de una secuencia observable o un valor predeterminado si no se encuentra ningún valor. (Definido por observable).
método de extensión pública FirstOrDefault<T>(Func<T, booleano>) Sobrecargado. Devuelve el primer elemento de una secuencia observable que coincide con el predicado o un valor predeterminado si no se encuentra ningún valor. (Definido por observable).
método de extensión pública Foo<T, R> (Definido por MyExt).
método de extensión pública forEach<T> Invoca una acción para cada elemento de la secuencia observable y bloquea hasta que finaliza la secuencia. (Definido por observable).
método de extensión pública > T<GetEnumerator Devuelve un enumerador que enumera todos los valores de la secuencia observable. (Definido por observable).
método de extensión pública GroupBy<T, TKey>(Func<T, TKey>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función de selector de claves especificada. (Definido por observable).
método de extensión pública GroupBy<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función y un comparador de selector de claves especificados. (Definido por observable).
método de extensión pública GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) Sobrecargado. Agrupa los elementos de una secuencia observable y selecciona los elementos resultantes mediante una función especificada. (Definido por observable).
método de extensión pública GroupBy<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función y comparador de selector de claves especificados y selecciona los elementos resultantes mediante una función especificada. (Definido por observable).
método de extensión pública GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función de selector de claves especificada. (Definido por observable).
método de extensión pública GroupByUntil<T, TKey, TDuration>(Func<T, TKey>, Func<IGroupedObservable<TKey, T>, IObservable<TDuration>>, IEqualityComparer<TKey>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función y un comparador de selector de claves especificados. (Definido por observable).
método de extensión pública GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función de selector de claves especificada y selecciona los elementos resultantes mediante una función especificada. (Definido por observable).
método de extensión pública GroupByUntil<T, TKey, TElement, TDuration>(Func<T, TKey>, Func<T, TElement>, Func<IGroupedObservable<TKey, TElement>, IObservable<TDuration>>, IEqualityComparer<TKey>) Sobrecargado. Agrupa los elementos de una secuencia observable según una función y comparador de selector de claves especificados y selecciona los elementos resultantes mediante una función especificada. (Definido por observable).
método de extensión pública GroupJoin<T, TRight, TLeftDuration, TRightDuration, TResult> Correlaciona los elementos de dos secuencias en función de duraciones superpuestas y agrupa los resultados. (Definido por observable).
método de extensión pública IgnoreElements<T> Omite todos los valores de una secuencia observable dejando solo los mensajes de finalización. (Definido por observable).
método de extensión pública Join<T, TRight, TLeftDuration, TRightDuration, TResult> Correlaciona los elementos de dos secuencias en función de duraciones superpuestas. (Definido por observable).
método de extensión pública último<T>() Sobrecargado. Devuelve el último elemento de una secuencia observable con un origen especificado. (Definido por observable).
método de extensión pública última<T>(Func<T,>booleano ) Sobrecargado. Devuelve el último elemento de una secuencia observable que coincide con el predicado. (Definido por observable).
método de extensión pública T LastOrDefault () Sobrecargado. Devuelve el último elemento de la secuencia observable o un valor predeterminado si no se encuentra ningún valor. (Definido por observable).
método de extensión pública >T<LastOrDefault (Func<T,>booleano ) Sobrecargado. Devuelve el último elemento de una secuencia observable que coincide con el predicado o un valor predeterminado si no se encuentra ningún valor. (Definido por observable).
método de extensión pública latest<T> Muestra el valor más reciente en una secuencia observable. (Definido por observable).
método de extensión pública LongCount<T> Devuelve un int64 que representa el número total de elementos de una secuencia observable. (Definido por observable).
método de extensión pública Materializar<T> Materializa las notificaciones implícitas de una secuencia observable como valores de notificación explícitos. (Definido por observable).
método de extensión pública <T>() Sobrecargado. Devuelve el elemento máximo de una secuencia observable. (Definido por observable).
método de extensión pública T(TT) Sobrecargado. Devuelve el valor máximo de una secuencia observable según el comparador especificado. (Definido por observable).
método de extensión pública MaxBy<T, TKey>(Func<T, TKey>) Sobrecargado. Devuelve los elementos de una secuencia observable con el valor de clave máximo. (Definido por observable).
método de extensión pública MaxBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) Sobrecargado. Devuelve los elementos de una secuencia observable con el valor de clave máximo. (Definido por observable).
método de extensión pública >T de<(>de<Tobservable ) Sobrecargado. Combina una secuencia observable de secuencias observables en una secuencia observable. (Definido por observable).
método de extensión pública mergeT (IObservableT, IScheduler) Sobrecargado. Combina dos secuencias observables en una sola secuencia observable. (Definido por observable).
método de extensión pública > > >de mínimo de<T () Sobrecargado. Devuelve el elemento mínimo de una secuencia observable. (Definido por observable).
método de extensión pública <T>(IComparer<T>) Sobrecargado. Devuelve el valor mínimo de una secuencia observable según el comparador especificado. (Definido por observable).
método de extensión pública MinBy<T, TKey>(Func<T, TKey>) Sobrecargado. Devuelve los elementos de una secuencia observable con el valor de clave mínimo. (Definido por observable).
método de extensión pública MinBy<T, TKey>(Func<T, TKey>, IComparer<TKey>) Sobrecargado. Devuelve los elementos de una secuencia observable con el valor de clave mínimo según el comparador especificado. (Definido por observable).
método de extensión pública MostRecent<T> Muestra el valor más reciente en una secuencia observable. (Definido por observable).
método de extensión pública multidifusión<T,>TResult (<T, TResult>) Sobrecargado. Devuelve una secuencia observable conectable que tras la conexión hace que la secuencia de origen inserte los resultados en el asunto especificado. (Definido por observable).
método de extensión pública <T, TIntermediate, TResult>(Func<ISubject<T, TIntermediate>>, Func<IObservable<TIntermediate>, IObservable<TResult>>) Sobrecargado. Devuelve una secuencia observable que contiene los elementos de una secuencia producida por la multidifusión de la secuencia de origen dentro de una función selectora. (Definido por observable).
método de extensión pública siguiente<T> Muestra el siguiente valor (bloqueo sin almacenamiento en búfer) de en una secuencia observable. (Definido por observable).
método de extensión pública ObserveOn<T>(SynchronizationContext) Sobrecargado. Notifique de forma asincrónica a los observadores en el contexto de sincronización especificado. (Definido por observable).
método de extensión pública >T<(Control) de ObserveOn Sobrecargado. (Definido por ControlObservable).
método de extensión pública < <T>(Distribuidor) Sobrecargado. (Definido por DispatcherObservable).
método de extensión pública >T de ObserveOn (DispatcherScheduler)< Sobrecargado. (Definido por DispatcherObservable).
método de extensión pública ObserveOn<T>(IScheduler) Sobrecargado. Notifique asincrónicamente a los observadores en el programador especificado. (Definido por observable).
método de extensión pública ObserveOnDispatcher<T> (Definido por DispatcherObservable).
método de extensión pública OnErrorResumeNext<T> Continúa una secuencia observable que finaliza normalmente o mediante una excepción con la siguiente secuencia observable. (Definido por observable).
método de extensión pública publicar<T>() () Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente. (Definido por observable).
método de extensión pública publicar<T>(T) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente y comienza con initialValue. (Definido por observable).
método de extensión pública Publish<T, TResult>(Func<IObservable<T>, IObservable<TResult>>) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente. (Definido por observable).
método de extensión pública publicar<T, TResult>(<<>Tobservable<func,<TResult>>, T) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente y comienza con initialValue. (Definido por observable).
método de extensión pública PublishLast<T>() Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que contiene solo la última notificación. (Definido por observable).
método de extensión pública PublishLast<T, TResult>(func<IObservable<T>, IObservable<TResult>>) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que contiene solo la última notificación. (Definido por observable).
método de extensión pública repetir<T>() Sobrecargado. Repite la secuencia observable indefinidamente. (Definido por observable).
método de extensión pública repetir<T>(Int32) Sobrecargado. Repite la secuencia observable indefinidamente. (Definido por observable).
método de extensión pública reproducción<T>() () Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones. (Definido por observable).
método de extensión pública < <T>(TimeSpan) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública <T>(Int32) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a las notificaciones bufferSize de reproducción de secuencias subyacentes. (Definido por observable).
método de extensión pública >T<replay (IScheduler) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones. (Definido por observable).
método de extensión pública >T<replay (TimeSpan, IScheduler) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública <T>(Int32, IScheduler) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción a las notificaciones bufferSize de reproducción de secuencias subyacentes. (Definido por observable).
método de extensión pública <T>(Int32, TimeSpan) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción con el búfer de reproducción de secuencias subyacenteSize notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública replay<T>(Int32, TimeSpan, IScheduler) Sobrecargado. Devuelve una secuencia observable conectable que comparte una sola suscripción con el búfer de reproducción de secuencias subyacenteSize notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública Replay<T, TResult>(func<IObservable<T>, IObservable<TResult>>) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente y comienza con el valor inicial. (Definido por observable).
método de extensión pública Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, IScheduler) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones. (Definido por observable).
método de extensión pública Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción al búfer de reproducción de secuencias subyacenteSize notificaciones. (Definido por observable).
método de extensión pública replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, TimeSpan, IScheduler) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción a la secuencia subyacente que reproduce todas las notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, IScheduler) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción al búfer de reproducción de secuencias subyacenteSize notificaciones. (Definido por observable).
método de extensión pública Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción al búfer de reproducción de secuencias subyacenteSize notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública Replay<T, TResult>(Func<IObservable<T>, IObservable<TResult>>, Int32, TimeSpan, IScheduler) Sobrecargado. Devuelve una secuencia observable que es el resultado de invocar el selector en una secuencia observable conectable que comparte una sola suscripción al búfer de reproducción de secuencias subyacenteSize notificaciones dentro de la ventana. (Definido por observable).
método de extensión pública deT de de reintento () Sobrecargado. Repite la secuencia observable de origen hasta que finaliza correctamente. (Definido por observable).
método de extensión pública reintentar<T>(Int32) Sobrecargado. Repite la secuencia observable de origen hasta que finaliza correctamente. (Definido por observable).
método de extensión pública < >T de ejemplo (TimeSpan) Sobrecargado. Muestra la secuencia observable en cada intervalo. (Definido por observable).
método de extensión pública ejemplo<T>(TimeSpan, IScheduler) Sobrecargado. Muestra la secuencia observable en cada intervalo con el origen, el intervalo y el programador especificados. (Definido por observable).
método de extensión pública ejemplo de<T,>de TSample (<<TSample>) Sobrecargado. Muestra la secuencia observable en tics de muestreo con el origen y el muestreador especificados. (Definido por observable).
método de extensión pública Scan<T>(Func<T, T, T>) Sobrecargado. Aplica una función de acumulador sobre una secuencia observable y devuelve cada resultado intermedio con el origen y el acumulador especificados. (Definido por observable).
método de extensión pública Scan<T, TAccumulate>(TAccumulate, Func<TAccumulate, T, TAccumulate>) Sobrecargado. Aplica una función de acumulador sobre una secuencia observable y devuelve cada resultado intermedio con el origen, inicialización y acumulador especificados. (Definido por observable).
método de extensión pública Seleccionar<T, TResult>(Func<T, TResult>) Sobrecargado. Proyecta cada elemento de una secuencia observable en un nuevo formulario con el origen y el selector especificados. (Definido por observable).
método de extensión pública Seleccionar<T, TResult>(Func<T, Int32, TResult>) Sobrecargado. Proyecta cada elemento de una secuencia observable en un nuevo formulario incorporando el índice del elemento con el origen y el selector especificados. (Definido por observable).
método de extensión pública SelectMany<T, TOther>(IObservable<TOther>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SelectMany<T, TResult>(Func<T, IObservable<TResult>>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SelectMany<T, TResult>(Func<T, IEnumerable<TResult>>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SelectMany<T, TResult>(Func<T, IObservable<TResult>>, Func<Exception, IObservable<TResult>>, Func<IObservable<TResult>>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SelectMany<T, TCollection, TResult>(Func<T, IEnumerable<TCollection>>, Func<T, TCollection, TResult>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SelectMany<T, TCollection, TResult>(Func<T, IObservable<TCollection>>, Func<T, TCollection, TResult>) Sobrecargado. Proyecta cada elemento de una secuencia observable en una secuencia observable y aplana las secuencias observables resultantes en una secuencia observable. (Definido por observable).
método de extensión pública SequenceEqual<T>(IObservable<T>) Sobrecargado. Determina si dos secuencias son iguales comparando los elementos en pares. (Definido por observable).
método de extensión pública SequenceEqual<T>(IObservable<T>, IEqualityComparer<T>) Sobrecargado. Determina si dos secuencias son iguales comparando los elementos de forma emparejada mediante un comparador de igualdad especificado. (Definido por observable).
método de extensión pública >T<único () Sobrecargado. Devuelve el único elemento de una secuencia observable y produce una excepción si no hay exactamente un elemento en la secuencia observable. (Definido por observable).
método de extensión pública >T de<único (Func<T,>booleano ) Sobrecargado. Devuelve el único elemento de una secuencia observable que coincide con el predicado y produce una excepción si no hay exactamente un elemento en la secuencia observable. (Definido por observable).
método de extensión pública SingleOrDefaultT() Sobrecargado. Devuelve el único elemento de una secuencia observable o un valor predeterminado si la secuencia observable está vacía. (Definido por observable).
método de extensión pública SingleOrDefault<T>(Func<T, booleano>) Sobrecargado. Devuelve el único elemento de una secuencia observable que coincide con el predicado o un valor predeterminado si no se encuentra ningún valor. (Definido por observable).
método de extensión pública Omitir<T> Omite un número especificado de valores en una secuencia observable y, a continuación, devuelve los valores restantes. (Definido por observable).
método de extensión pública SkipLast<T> Omite un número especificado de elementos al final de una secuencia observable. (Definido por observable).
método de extensión pública SkipUntil<T, TOther> Devuelve los valores de la secuencia observable de origen solo después de que la otra secuencia observable genere un valor. (Definido por observable).
método de extensión pública SkipWhile<T>(Func<T, booleano>) Sobrecargado. Omite los valores de una secuencia observable siempre que una condición especificada sea true y, a continuación, devuelve los valores restantes. (Definido por observable).
método de extensión pública SkipWhile<T>(Func<T, Int32, Boolean>) Sobrecargado. Omite los valores de una secuencia observable siempre que una condición especificada sea true y, a continuación, devuelve los valores restantes. (Definido por observable).
método de extensión pública StartWithTT[]) Sobrecargado. Antepone una secuencia de valores a una secuencia observable con el origen y los valores especificados. (Definido por observable).
método de extensión pública StartWith<T>(IScheduler, T[]) Sobrecargado. Antepone una secuencia de valores a una secuencia observable con el origen, el programador y los valores especificados. (Definido por observable).
método de extensión pública < <T>() Sobrecargado. Evalúa la secuencia observable con un origen especificado. (Definido por ObservableExtensions).
método de extensión pública Suscribir<T>(Acción<T>) Sobrecargado. Suscribe un controlador de elementos a una secuencia observable. (Definido por ObservableExtensions).
método de extensión pública Suscribir<T>(Action<T>, Action<Exception>) Sobrecargado. Suscribe un controlador de elementos y un controlador de excepciones a una secuencia observable. (Definido por ObservableExtensions).
método de extensión pública Suscribir<T>(Action<T>, Action) Sobrecargado. Suscribe un controlador de elementos y un controlador de finalización a una secuencia observable. (Definido por ObservableExtensions).
método de extensión pública Suscribir<T>(Action<T>, Action<Exception>, Action) Sobrecargado. Suscribe un controlador de elementos, un controlador de excepciones y un controlador de finalización a una secuencia observable. (Definido por ObservableExtensions).
método de extensión pública subscribeOnT(SynchronizationContext) de Sobrecargado. Suscribe y cancela la suscripción asincrónica a los observadores en el contexto de sincronización especificado. (Definido por observable).
método de extensión pública <T>(Control) Sobrecargado. (Definido por ControlObservable).
método de extensión pública SubscribeOn<T>(Dispatcher) Sobrecargado. (Definido por DispatcherObservable).
método de extensión pública subscribeOn<T>(DispatcherScheduler) Sobrecargado. (Definido por DispatcherObservable).
método de extensión pública >T<(IScheduler) Sobrecargado. Suscribe y cancela la suscripción asincrónica a los observadores en el programador especificado. (Definido por observable).
método de extensión pública SubscribeOnDispatcher<T> (Definido por DispatcherObservable).
método de extensión pública Sincronizar<>T () Sobrecargado. Sincroniza la secuencia observable. (Definido por observable).
método de extensión pública Sincronizar<T>(objeto) Sobrecargado. Sincroniza la secuencia observable. (Definido por observable).
método de extensión pública Tomar<T> Devuelve un número especificado de valores contiguos desde el principio de una secuencia observable. (Definido por observable).
método de extensión pública TakeLast<T> Devuelve un número especificado de elementos contiguos desde el final de una secuencia observable. (Definido por observable).
método de extensión pública TakeUntil<T, TOther> Devuelve los valores de la secuencia observable de origen hasta que la otra secuencia observable genera un valor. (Definido por observable).
método de extensión pública TakeWhile<T>(Func<T, booleano>) Sobrecargado. Devuelve valores de una secuencia observable siempre que una condición especificada sea true y, a continuación, omite los valores restantes. (Definido por observable).
método de extensión pública TakeWhile<T>(Func<T, Int32, Boolean>) Sobrecargado. Devuelve valores de una secuencia observable siempre que una condición especificada sea true y, a continuación, omite los valores restantes. (Definido por observable).
método de extensión pública <T, TResult> Coincide cuando la secuencia observable tiene un valor disponible y proyecta el valor. (Definido por observable).
método de extensión pública limitación de<T>(TimeSpan) Sobrecargado. Omite los valores de una secuencia observable seguida de otro valor antes del tiempo de vencimiento con el origen y dueTime especificados. (Definido por observable).
método de extensión pública limitación de<T>(TimeSpan, IScheduler) Sobrecargado. Omite los valores de una secuencia observable seguida de otro valor antes del tiempo de vencimiento con el origen, dueTime y scheduler especificados. (Definido por observable).
método de extensión pública timeIntervalT() Sobrecargado. Registra el intervalo de tiempo entre valores consecutivos en una secuencia observable con el origen especificado. (Definido por observable).
método de extensión pública >T<TimeInterval (IScheduler) Sobrecargado. Registra el intervalo de tiempo entre valores consecutivos en una secuencia observable con el origen y el programador especificados. (Definido por observable).
método de extensión pública tiempo de espera<>T (TimeSpan) Sobrecargado. Devuelve la secuencia observable o timeoutException si transcurre dueTime. (Definido por observable).
método de extensión pública tiempo de espera<T>(DateTimeOffset) Sobrecargado. Devuelve la secuencia observable o timeoutException si transcurre dueTime. (Definido por observable).
método de extensión pública tiempo de espera<T>(TimeSpan, IObservable<T>) Sobrecargado. Devuelve la secuencia observable de origen o la otra secuencia observable si transcurre dueTime. (Definido por observable).
método de extensión pública tiempo de espera<T>(DateTimeOffset, IObservable<T>) Sobrecargado. Devuelve la secuencia observable o timeoutException si transcurre dueTime. (Definido por observable).
método de extensión pública >T<T (TimeSpan, IScheduler) Sobrecargado. Devuelve la secuencia observable o timeoutException si transcurre dueTime. (Definido por observable).
método de extensión pública tiempo de espera<T>(DateTimeOffset, IScheduler) Sobrecargado. Devuelve la secuencia observable o timeoutException si transcurre dueTime. (Definido por observable).
método de extensión pública timeout<T>(TimeSpan, IObservable<T>, IScheduler) Sobrecargado. Devuelve la secuencia observable de origen o la otra secuencia observable si transcurre dueTime. (Definido por observable).
método de extensión pública timeout<T>(DateTimeOffset, IObservable<T>, IScheduler) Sobrecargado. Devuelve la secuencia observable de origen o la otra secuencia observable si transcurre dueTime. (Definido por observable).
método de extensión pública marca de tiempo<>T () Sobrecargado. Registra la marca de tiempo de cada valor de una secuencia observable con el origen especificado. (Definido por observable).
método de extensión pública marca de tiempo<T>(IScheduler) Sobrecargado. Registra la marca de tiempo de cada valor de una secuencia observable con el origen y el programador especificados. (Definido por observable).
método de extensión pública ToArray<T> Crea una matriz a partir de una secuencia observable. (Definido por observable).
método de extensión pública toDictionary<T, TKey>(Func<T, TKey>) Sobrecargado. Crea un diccionario a partir de una secuencia observable según una función de selector de claves especificada. (Definido por observable).
método de extensión pública toDictionary<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) Sobrecargado. Crea un diccionario a partir de una secuencia observable según una función de selector de claves especificada y un comparador. (Definido por observable).
método de extensión pública toDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) Sobrecargado. Crea un diccionario a partir de una secuencia observable según una función de selector de claves especificada y una función de selector de elementos. (Definido por observable).
método de extensión pública toDictionary<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey> ) Sobrecargado. Crea un diccionario a partir de una secuencia observable según una función de selector de claves especificada, un comparador y una función selectora de elementos. (Definido por observable).
método de extensión pública toEnumerable<T> Convierte una secuencia observable en una secuencia enumerable. (Definido por observable).
método de extensión pública ToEvent<T> Expone una secuencia observable como un objeto con un evento de .NET con un origen especificado. (Definido por observable).
método de extensión pública ToList<T> Crea una lista a partir de una secuencia observable. (Definido por observable).
método de extensión pública toLookup<T, TKey>(Func<T, TKey>) Sobrecargado. Crea una búsqueda a partir de una secuencia observable según una función de selector de claves especificada. (Definido por observable).
método de extensión pública ToLookup<T, TKey>(Func<T, TKey>, IEqualityComparer<TKey>) Sobrecargado. Crea una búsqueda a partir de una secuencia observable según una función de selector de claves especificada y un comparador. (Definido por observable).
método de extensión pública ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>) Sobrecargado. Crea una búsqueda a partir de una secuencia observable según una función de selector de claves especificada y una función de selector de elementos. (Definido por observable).
método de extensión pública ToLookup<T, TKey, TElement>(Func<T, TKey>, Func<T, TElement>, IEqualityComparer<TKey>) Sobrecargado. Crea una búsqueda a partir de una secuencia observable según una función de selector de claves especificada, un comparador y una función de selector de elementos. (Definido por observable).
método de extensión pública ToNotifier<T> Crea una devolución de llamada de notificación desde un observador. (Definido por Observer).
método de extensión pública TT() Sobrecargado. Devuelve una tarea que contiene el último valor de la secuencia observable. (Definido por TaskObservableExtensions).
método de extensión pública toTask<T>(objeto) Sobrecargado. Devuelve una tarea que contiene el último valor de la secuencia observable. (Definido por TaskObservableExtensions).
método de extensión pública >T<toTask (CancellationToken) Sobrecargado. Devuelve una tarea que contiene el último valor de la secuencia observable. (Definido por TaskObservableExtensions).
método de extensión pública toTask<T>(CancellationToken, Object) Sobrecargado. Devuelve una tarea que contiene el último valor de la secuencia observable. (Definido por TaskObservableExtensions).
método de extensión pública Where<T>(Func<T, Boolean>) Sobrecargado. Filtra los elementos de una secuencia observable basada en un predicado. (Definido por observable).
método de extensión pública Where<T>(Func<T, Int32, Boolean>) Sobrecargado. Filtra los elementos de una secuencia observable en función de un predicado mediante la incorporación del índice del elemento. (Definido por observable).
método de extensión pública ventana<T>(Int32) Sobrecargado. Proyecta cada elemento de una secuencia observable en ventanas consecutivas no superpuestas que se generan en función de la información de recuento de elementos. (Definido por observable).
método de extensión pública ventana<>T (TimeSpan) Sobrecargado. Proyecta cada elemento de una secuencia observable en ventanas consecutivas no superpuestas que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública ventana<T>(Int32, Int32) Sobrecargado. Proyecta cada elemento de una secuencia observable en cero o más ventanas que se generan en función de la información de recuento de elementos. (Definido por observable).
método de extensión pública ventana<T>(TimeSpan, IScheduler) Sobrecargado. Proyecta cada elemento de una secuencia observable en ventanas consecutivas no superpuestas que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública ventana de (TimeSpan, TimeSpan) Sobrecargado. Proyecta cada elemento de una secuencia observable en cero o más ventanas que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública ventana<T>(TimeSpan, Int32) Sobrecargado. Proyecta cada elemento de una secuencia observable en una ventana que se completa cuando está lleno o ha transcurrido un período de tiempo determinado. (Definido por observable).
método de extensión pública ventana<T>(TimeSpan, TimeSpan, IScheduler) Sobrecargado. Proyecta cada elemento de una secuencia observable en cero o más ventanas que se generan en función de la información de tiempo. (Definido por observable).
método de extensión pública ventana<T>(TimeSpan, Int32, IScheduler) Sobrecargado. Proyecta cada elemento de una secuencia observable en una ventana que se completa cuando está lleno o ha transcurrido un período de tiempo determinado. (Definido por observable).
método de extensión pública ventana<T, TWindowClosing>(func<IObservable<TWindowClosing>>) Sobrecargado. Proyecta cada elemento de una secuencia observable en ventanas consecutivas que no se superponen. (Definido por observable).
método de extensión pública Window<T, TWindowOpening, TWindowClosing>(IObservable<TWindowOpening>, Func<TWindowOpening, IObservable<TWindowClosing>>) Sobrecargado. Proyecta cada elemento de una secuencia observable en cero o más ventanas. (Definido por observable).
método de extensión pública Zip<T, TSecond, TResult>(IObservable<TSecond>, Func<T, TSecond, TResult>) Sobrecargado. Combina dos secuencias observables en una secuencia observable mediante la combinación de sus elementos de forma emparejada. (Definido por observable).
método de extensión pública Zip<T, TSecond, TResult>(IEnumerable<TSecond>, Func<T, TSecond, TResult>) Sobrecargado. Combina una secuencia observable y una secuencia enumerable en una secuencia observable mediante la función selectora. (Definido por observable).

Arriba

Observaciones

La implementación de la interfaz ISubject le permite crear su propio sujeto con comportamientos personalizados.

Ejemplos

El código de ejemplo siguiente implementa un asunto de ejemplo que simplemente repite la ejecución del método en la ventana de la consola.

using System;
using System.Collections.Generic;
using System.Reactive.Linq;
using System.Reactive.Subjects;
using System.Reactive.Concurrency;
using System.Reactive.Disposables;

namespace Example
{
  class Program
  {
    static void Main()
    {
      //************************************************************************************//
      //*** The ConsoleEchoSubject will just echo it's method calls out to the console   ***//
      //*** window.                                                                      ***//
      //***                                                                              ***//
      //*** Create an instance of the ConsoleEchoSubject and subscribe to a sequence of  ***//
      //*** the first 5 integers returned by the Interval operator.                      ***//
      //***                                                                              ***//
      //************************************************************************************//

      ConsoleEchoSubject<long> mySubject = new ConsoleEchoSubject<long>();
      var obs = Observable.Interval(TimeSpan.FromSeconds(1), Scheduler.ThreadPool).Take(5);
      Console.WriteLine("Subscribing ConsoleEchoSubject to observable sequence.\n");
      obs.Subscribe(mySubject);


      //************************************************************************************//
      //*** Subscribe to the subject's observable interface. Each value will be written  ***//
      //*** to the console window.                                                       ***//
      //************************************************************************************//

      IDisposable subscription = mySubject.Subscribe(x => Console.WriteLine(x), () => 
      {
        Console.WriteLine("\nSequence Completed.\n");
        Console.WriteLine("Press ENTER to exit...");
      });

      Console.ReadLine();


      //***************************************//
      //*** Explicitly releasing resources. ***//
      //***************************************//

      subscription.Dispose();
      mySubject.Dispose();
    }
  }



  //************************************************************************************//
  //***                                                                              ***//
  //*** The ConsoleEchoSubject will just echo it's method calls out to the console   ***//
  //*** window.                                                                      ***//
  //***                                                                              ***//
  //************************************************************************************//

  class ConsoleEchoSubject<T> : ISubject<T>, IDisposable
  { 
    private List<IObserver<T>> observerList;     
    private bool isDisposed;
    private bool isStopped;
    object gate = new object();
    Exception exception;

    public ConsoleEchoSubject()
    {
      observerList = new List<IObserver<T>>();     
    }

    public void OnCompleted()
    {      
      //****************************************************************************************//
      //*** Make sure the OnCompleted operation is not preempted by another operation        ***//
      //*** which would break the expected behavior.  For example, don't allow an error from ***//
      //*** OnError preempt OnCompleted from anotther thread. Then OnCompleted would follow  ***//
      //*** an error.  That would be an incorrect behavior.                                  ***//
      //****************************************************************************************//

      lock (gate) 
      {
        CheckDisposed();

        if (!isStopped)
        {
          Console.WriteLine("\nConsoleEchoSubject : OnCompleted()");

          foreach (IObserver<T> observer in observerList)
          {
            observer.OnCompleted();
          }

          observerList.Clear();
          isStopped = true;
        }
      }
    }

    public void OnError(Exception error)
    {
      if (error == null)
        throw new ArgumentException("Exception error should not be null.");

      //****************************************************************************************//
      //*** Make sure the OnError operation is not preempted by another operation which      ***//
      //*** would break the expected behavior.  For example, don't allow unsubscribe or an   ***//
      //*** OnCompleted operation to preempt OnError from another thread. This would result  ***//
      //*** in an error following completion.  That would be an incorrect behavior.          ***//
      //****************************************************************************************//

      lock (gate) 
      {
        CheckDisposed();

        if (!isStopped)
        {
          Console.WriteLine("\nConsoleEchoSubject : OnError({0})", error.Message);

          exception = error;

          foreach (IObserver<T> observer in observerList)
          {
            observer.OnError(error);
          }

          observerList.Clear();
          isStopped = true;  
        }
      }
    }

    public void OnNext(T value)
    {
      //****************************************************************************************//
      //*** Make sure the OnNext operation is not preempted by another operation which       ***//
      //*** would break the expected behavior.  For example, don't allow unsubscribe, errors ***//
      //*** or an OnCompleted operation to preempt OnNext from another thread. This would    ***//
      //*** have the result of items in a sequence following completion, errors, or          ***//
      //*** unsubscribe.  That would be an incorrect behavior.                               ***//
      //****************************************************************************************//

      lock (gate)
      {
        CheckDisposed();

        if (!isStopped)
        {
          Console.WriteLine("\nConsoleEchoSubject : OnNext({0})", value.ToString());

          foreach (IObserver<T> observer in observerList)
          {
            observer.OnNext(value);
          }
        }
      }
    } 

    public IDisposable Subscribe(IObserver<T> observer)
    {
      if (observer == null)
        throw new ArgumentException("observer should not BehaviorSubject null.");

      //****************************************************************************************//
      //*** Make sure Subscribe occurs in sync with the other operations so we keep the      ***//
      //*** correct behavior depending on whether an error has occurred or the observable    ***//
      //*** sequence has completed.                                                          ***//
      //****************************************************************************************//

      lock (gate)
      {
        CheckDisposed();

        if (!isStopped)
        {
          Console.WriteLine("\nConsoleEchoSubject : Creating new subscription.");
          observerList.Add(observer);
          return new Subscription(observer, this);
        }
        else if(exception != null)
        {
          observer.OnError(exception);
          return Disposable.Empty;
        }
        else
        {
          observer.OnCompleted();
          return Disposable.Empty;
        }
      }
    }

    private void Unsubscribe(IObserver<T> observer)
    {
      //****************************************************************************************//
      //*** Make sure Unsubscribe occurs in sync with the other operations so we keep the    ***//
      //*** correct behavior.                                                                ***//
      //****************************************************************************************//

      lock (gate)
      {
        Console.WriteLine("\nConsoleEchoSubject : Unsubscribing subscription.");
        observerList.Remove(observer);
      }
    }

    public void  Dispose()
    {
      //****************************************************************************************//
      //*** Make sure Dispose occurs in sync with the other operations so we keep the        ***//
      //*** correct behavior. For example, Dispose shouldn't preempt the other operations    ***//
      //*** changing state variables after they have been checked.                           ***//
      //****************************************************************************************//

      lock (gate)
      {
        Console.WriteLine("\nConsoleEchoSubject : Disposing resources.");
        observerList.Clear();
        isStopped = true;
        isDisposed = true;
      }
    }

    private void CheckDisposed()
    {
      if (isDisposed)
        throw new ObjectDisposedException("Subject has been disposed.");
    }


    //************************************************************************************//
    //***                                                                              ***//
    //*** The Subscription class wraps each observer that creates a subscription. This ***//
    //*** is needed to expose an IDisposable interface through which a observer can    ***//
    //*** cancel the subscription.                                                     ***//
    //***                                                                              ***//
    //************************************************************************************//

    class Subscription : IDisposable
    {
      private ConsoleEchoSubject<T> subject;
      private IObserver<T> observer;

      public Subscription(IObserver<T> obs, ConsoleEchoSubject<T> sub)
      {
        subject = sub;
        observer = obs;
      }

      public void Dispose()
      {
        subject.Unsubscribe(observer);  
      }
    }
  }
}

El código de ejemplo generó la salida siguiente.

Subscribing ConsoleEchoSubject to observable sequence.


ConsoleEchoSubject : Creating new subscription.

ConsoleEchoSubject : OnNext(0)
0

ConsoleEchoSubject : OnNext(1)
1

ConsoleEchoSubject : OnNext(2)
2

ConsoleEchoSubject : OnNext(3)
3

ConsoleEchoSubject : OnNext(4)
4

ConsoleEchoSubject : OnCompleted()

Sequence Completed.

Press ENTER to exit...


ConsoleEchoSubject : Unsubscribing subscription.

ConsoleEchoSubject : Disposing resources.

C:\

Consulte también

Referencia

espacio de nombres System.Reactive.Subjects