Rx IObservable: Как сделать конкретную коллекцию push? - PullRequest
2 голосов
/ 20 февраля 2011

Есть миллионы конкретных реализаций IEnumerable: List<T>, Dictionary<T> и т. Д. Какие конкретные реализации IObservable доступны?

Ответы [ 2 ]

4 голосов
/ 20 февраля 2011

Реализации ISubject Rx являются одними из наиболее распространенных реализаций интерфейса IObservable.Список предметных классов включает:

Subject<T>
AsyncSubject<T>
BehaviorSubject<T>
ReplaySubject<T>

и новые

FastSubject<T>
FastAsyncSubject<T>
FastBehaviorSubject<T>
FastReplaySubject<T>

Предметные классы представляют объекты, которые реализуют IObservable<T> и IObserver<T> и используются во всей внутренней работебиблиотека Rx.Они также очень ценны, если вы создаете свои собственные методы расширения.Вы можете найти объяснение каждой из этих реализаций в моем недавнем вопросе по теме (без каламбура).

Как упоминал Маурисио Шеффер, более распространенным является использованиеObservable классифицирует статические методы и IObservable методы расширения (пространство имен System.Linq) для извлечения экземпляров IObservable.

3 голосов
/ 20 февраля 2011

Какие конкретные реализации IObservable доступны?

AnonymousObservable<T> (внутренний), ConnectableObservable<T>, ListObservable<T> ...

Но самые распространенныеспособ создания IObservables - через функции и методы расширения System.Reactive (например, ToObservable()) ( пример )

...