私は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
はい、VSで発生します。私は最初の例外は本当に(誰によって?)がキャッチされていると思うが、さらに私は別の例外を取得します。私の更新された質問を見てください。 – francezu13k50
それを再現することはできません、あなたのプロジェクトは最初の例外の後に正常に動作します、多分何かを変更しましたか? – Gluck
それは奇妙です。アップロードしたプロジェクトを別のコンピュータでテストしましたが(W8ではなくW7を実行しています)、同じ結果が得られます。また、コンパイルされたアプリケーションは、テストされたすべてのSO(W8.1、W7、WinXp)で 'NullReferenceException'を返します。 – francezu13k50