2011-07-04 22 views
6

Birkaç gün önce veri geliştirici merkezinden (here) indirdiğim reaktif uzantılar için (Rx HOL .NET.pdf) Hands-On-Labs aracılığıyla çalışıyorum.Rx Switch() operatörüne ne oldu?

System.Reactive 1.0.10621.0 

System.Reactive.Windows.Forms 1.0.10621.0 

Neredeyse laboratuarları bitirdim, ama .Switch() örnek uygulamaya çalışırken bir çıkmaza girdi ettik Visual Studio:

Ben Nuget kullanarak, projemde için bu referansları eklendi 'Anahtar' ve uzatma yöntemi 'anahtar' tipbir birinci bağımsız değişken kabul etmek için bir tanım içermiyor

'System.IObservable' : uzantısı yöntemi bulamadığında'System.IObservable' bulunamadı (eğer yönergesi veya bir derleme referans kullanarak bir eksik?) Bazı şeyler adlandırılmış olduğundan

Şimdi, belge güncel değil Labs On Bu Hands biliyorum (FromEvent, FromEventPattern oldu) ve bazı şeyler kaldırıldı (RemoveTimeStamp) ve bu belge bunu yansıtmıyor. Hayatımın ne için Switch olarak yeniden adlandırıldığını tahmin edemiyorum ya da hangi mecraya taşınmış olabileceğini anlamaya ya da kaldırıldığını belirten kapsamlı bir sürüm not listesi bulun.

Switch'u nerede bulabileceğimi ve geçerli adın nerede olduğunu bilen var mı?

+1

El Laboratuarı PDF'sine bir bağlantı sağladığınız için teşekkür ederiz. –

+0

Sadece bildiğiniz gibi FromEventPattern, FromEvent'in yeniden adlandırılması değil. FromEvent hala çok canlı. İşte aralarındaki farkın harika bir açıklaması - https://stackoverflow.com/a/19896246/540156 – onefootswill

cevap

8

Switch uzantı yöntemi IObservable<T> uzatmaz - IObservable<IObservable<T>> uzatır. Tam imzadır:

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

deneyin Observable.Empty<IObservable<object>>(). yazıp Switch ardından görünen bakın.

Değilse, using ad alanı bildirimlerinizi kontrol edin.

+0

Teşekkürler. Orjinal örnek bir 'SelectMany' ->' TakeUntil' idi, x 'den foo' dan x 'den' ye '' foo select bar (x) ''den x' 'den' '' yi değiştirdiklerini fark etmedim. ikinci formu kullanarak, Switch çıktı. –

+1

Evet - genellikle SelectMany'den sonra sadece Select seçtikten sonra bir Select seçtikten sonra bir Select seçtikten sonra Switch'i kullanırsınız. –