2011-07-04 19 views
6

Pracuję nad rozwiązaniem Hands-On-Labs dla reaktywnych rozszerzeń (Rx HOL .NET.pdf), które pobrałem z centrum danych (here) kilka dni temu.Co stało się z operatorem przełącznika Rx()?

Dodałem te odniesienia do mojego projektu, używając Nuget:

System.Reactive 1.0.10621.0 

System.Reactive.Windows.Forms 1.0.10621.0 

Prawie skończyłam z laboratoriów, ale I został trafiony Suszka próbuje wdrożyć .Switch() przykład Visual Studio nie może zlokalizować metodę rozszerzenia:

„System.IObservable” nie zawierają definicji dla „switch” i żadna metoda wydłużania „switch” akceptującą pierwszy argument typu „System.IObservable” można odnaleźć (czy brakuje używając dyrektywy lub odniesienie montaż ?)

Teraz wiem, że to ręce na Labs Dokument jest nieaktualny, ponieważ pewne rzeczy zostały zmienione (FromEvent stał się FromEventPattern) i niektóre rzeczy zostały usunięte (RemoveTimeStamp) i ten dokument nie odzwierciedla tego. Dla mojego życia nie potrafię odgadnąć, co zmienili na Switch, ani dowiedzieć się, do jakiego zespołu go przenieśli, ani znaleźć obszernej listy uwag do wydania, które wskazują, że został usunięty.

Ktoś wie, gdzie mogę znaleźć Switch i jaka jest obecna nazwa?

+1

Dziękujemy za przesłanie linku do pliku PDF "Ręcznie na laboratorium". –

+0

Tak, jak wiesz, FromEventPattern nie zmienia nazwy FromEvent. FromEvent jest wciąż bardzo żywy. Oto doskonałe wyjaśnienie różnicy między nimi - https://stackoverflow.com/a/19896246/540156 – onefootswill

Odpowiedz

8

Metoda rozszerzenia Switch nie obejmuje rozszerzenia IObservable<T> - rozszerza się o IObservable<IObservable<T>>. Pełne podpis jest:

IObservable<TSource> Switch<TSource>(this IObservable<IObservable<TSource>> sources) 

spróbuj wpisać Observable.Empty<IObservable<object>>(). i zobaczyć, czy Switch pojawia się wtedy.

Jeśli nie, sprawdź deklaracje przestrzeni nazw using.

+0

Dzięki. Oryginalny przykład to 'SelectMany' ->' TakeUntil', nie zauważyłem, że zmienili 'od x w foo z y w bar (x)' na 'from x in foo select bar (x)', after używając drugiej formy, pojawił się Switch. –

+1

Yep - zwykle używasz Switch po Select, tak jak SelectMany jest tak naprawdę Merge po Select –

Powiązane problemy