Es gibt einen Port von Rx namens mono-reactive , der ein MonoTouch-Projekt enthält, aber der Autor vor zehn Tagen angekündigt gibt er das Projekt zugunsten der Open-Source-Implementierung von Microsoft auf:
Ich verkünde glücklich, dass ich nicht mehr an dieser Code-Basis arbeiten werde Jetzt hat Microsoft Open-Source Reactive Extensions in Apache-Lizenz. Ссылка
MonoDevelop hängt beim Versuch, Rx.sln im Rx-Master zu öffnen, und es gibt kein MonoTouch-Ziel Dort sowieso. Die PCL-Unterstützung ist noch nicht für MonoTouch verfügbar .
Ich frage mich, ob jemand bereits ein MonoTouch-kompatibles Projekt für Rx erstellt hat und ob es tatsächlich in der Produktion verwendet werden kann.
Ich habe selbst ein Projekt aufgesetzt und Core , Schnittstellen , Linq und PlatformServices von Rx's Codeplex .
Da gehst du:
Es funktioniert gut mit Referenztypen, geschweige denn mit Werttypen (siehe unten).
Leider kompiliert es nicht aufgrund von Fehler Es kompiliert jetzt gut. 8329 und 9087 .
Ich habe auch mono-reactive verwendet und es funktionierte ziemlich gut für mich. Während die Implementierung von Microsoft prägnanter und zuverlässiger erscheint, ist mono-reactive kleiner und leichter zu beheben, wenn es wirklich benötigt wird.
Sie können beides ausprobieren und sehen, was am besten für Sie funktioniert.
Glücklich beobachten!
Bei beiden Frameworks kam es oft zu Abstürzen durch AOT Einschränkungen für das Gerät. Mir wurde von Rolf von Xamarin gesagt, dass du es kannst umgehen die meisten AOT-Einschränkungen häufig, indem keine Werttypen verwendet Rx generische Typparameter.
Zum Beispiel werden IObservable<bool>
Erweiterungen wahrscheinlich auf dem Gerät abstürzen, und auch IObservable<long>
, aber Referenztypen sollten mit den meisten Methoden funktionieren.
In meine Version von Rx habe ich IntervalSafe
Methode hinzugefügt, die Unit
zurückgibt (was ich geändert habe, um ein Referenz-Typ, anstatt einer Struktur) anstelle von long
, und verursacht daher nicht Dutzende von Abstürzen in der gesamten Codebasis.
Einige Rx-Methoden stürzen immer noch ab, aber ist es recht einfach, diese Abstürze zu beheben .
Siehe Throttle
fix von Costo oder mein Buffer
fix als Referenz.
Ich werde gerne Pull-Anfragen zusammenführen, die andere Rx-Methoden und ihre Überladungen adressieren.
Tags und Links .net c# xamarin.ios xamarin system.reactive