2016-03-22 15 views
0

私はReactiveUIを使って何ができるかを見てからReactiveUIを学ぶことに決めましたが、単純なプロジェクトを最初に実行しようとすると熱意が崩れました。私はthisの記事から、NuGetのreactui-winforms.Net40バージョン6.5.0を使って例を作り直しました。すべてが正常にコンパイルされますが、実行時に次の行に例外が表示されますReactiveUIをWinFormsで使用する方法

var OKCmdObs = this.WhenAny(vm => vm.EnteredText, 
      s => !string.IsNullOrWhiteSpace(s.Value)); 



System.InvalidOperationException occurred 
    HResult=-2146233079 
    Message=The current thread has no Dispatcher associated with it. 
    Source=System.Reactive.Windows.Threading 
    StackTrace: 
     at System.Reactive.Concurrency.DispatcherScheduler.get_Current() 
     at ReactiveUI.PlatformRegistrations.<>c.<Register>b__0_7() in C:\workspace\git-perso\ReactiveUI\ReactiveUI\Platform\Registrations.cs:line 75 
    InnerException: 

何が起こっているのか分かりませんか? 上記の記事にはコンパイル済みのプロジェクトがダウンロードできず、reactui-winforms用の完全な "Hello-World"プロジェクトは見つかりませんでした。


私のテストプロジェクトは、hereからダウンロードできます。 Visual Studioで


私は(F5)を続けた場合、別の例外がoccures:

System.NullReferenceException occurred 
    HResult=-2147467261 
    Message=Object reference not set to an instance of an object. 
    Source=ReactiveUI 
    StackTrace: 
     at ReactiveUI.IROObservableForProperty.<>c__DisplayClass1_0.<GetNotificationForProperty>b__6(IReactivePropertyChangedEventArgs`1 x) in C:\workspace\git-perso\ReactiveUI\ReactiveUI\IROObservableForProperty.cs:line 44 
    InnerException: 

私はF5をヒットし続ける場合、私は得る:

System.Exception was unhandled by user code 
    HResult=-2146233088 
    Message=An OnError occurred on an object (usually ObservableAsPropertyHelper) that would break a binding or command. To prevent this, Subscribe to the ThrownExceptions property of your objects 
    Source=ReactiveUI 

答えて

0

この例外が原因で発生していますRxUIは常にwinformsパッケージを使用しているため、Winformsベースのスケジューラでこの設定をオーバーライドしますが、WPFの初期化を常に試みます。

しかし、それはキャッチされ無視されるので、それは無害でなければなりません。あなたはおそらくVS内でそれを打つだろうか?

+0

はい、VSで発生します。私は最初の例外は本当に(誰によって?)がキャッチされていると思うが、さらに私は別の例外を取得します。私の更新された質問を見てください。 – francezu13k50

+0

それを再現することはできません、あなたのプロジェクトは最初の例外の後に正常に動作します、多分何かを変更しましたか? – Gluck

+0

それは奇妙です。アップロードしたプロジェクトを別のコンピュータでテストしましたが(W8ではなくW7を実行しています)、同じ結果が得られます。また、コンパイルされたアプリケーションは、テストされたすべてのSO(W8.1、W7、WinXp)で 'NullReferenceException'を返します。 – francezu13k50

関連する問題